• Beranda
  • Autosultan
  • Bitcoin
  • Dollar
  • Linux
  • LOKER
  • Printer
  • Sofware
  • sosial
  • TISniper
  • Virus
  • Windows

T.I Sniper

#Expert Advisor for MetaTrader 4 #Expert Advisor for MetaTrader 5 #youtube #google #free dollar business every day #Lowongan #Pekerjaan #Loker #forex #trading Autopilot #mining crypto #Update #Tutorial #Komputer Perbaikan, #Email #Facebook , #whatsapp ,#instagram #telegram ,#Internet ,#Motivasi , #Crypto , #AirDrop, #Bitcoin, #Ethereum, #Binance coin, #Cardano, #Degocoin, #Litecoin #Indodax, #Coinbase, #Nexo Dan Mata Uang Digital Lain , #Website, Perbaikan #Server #Domain , #Hosting, #Whm

    • Beranda
    • Contact Forum
    • Coffee JKs88
    • Tentang Kami
    • Parse Code Html
    • Text Terbalik
    • Privacy Policy

    Ikuti Kami!

    Follow Akun Instagram Kami Dapatkan Notifikasi Terbaru!
    Ikuti Kami di Facebok! Untuk mendapatkan notifikasi terbaru.

    Postingan Populer

    Backlink dengan Google Dork Seo

    Dork Seo
    Januari 01, 2016
    0

    Cara Dapat Backlink dengan Google Dork

    Dork Seo
    Februari 13, 2016
    0

    Download File ISO Windows 11 Dan Bootable USB Rufus

    Sofware Windows
    Desember 02, 2021
    0

    Cara Dapat Backlink Edu Gratis

    Seo
    Februari 13, 2016
    0

    SBS opening Fix Autosultan

    Autosultan zonamotivasi
    Januari 25, 2022
    0
    Author
    chmood
    Tautan disalin ke papan klip!
    Share Posts "ROS 101: Membuat simpul penerbit"
  • Salin link
  • Simpan Ke Daftar Bacaan
  • Bagikan ke Facebook
  • Bagikan ke Twitter
  • Bagikan ke Pinterest
  • Bagikan ke Telegram
  • Bagikan ke Whatsapp
  • Bagikan ke Tumblr
  • Bagikan ke Line
  • Bagikan ke Email
  • HomePemogramanSistem Operasi RobotROS 101: Membuat simpul penerbit
    ROS 101: Membuat simpul penerbit

    ROS 101: Membuat simpul penerbit

    Simpan Postingan


    Dalam posting sebelumnya, kita lulus dari mengendarai Husky untuk mengambil sebuah Grizzly! Sekarang saatnya untuk turun dan kotor dengan apa ROS benar-benar terbuat dari: node! Kami pertama akan menciptakan ruang kerja untuk bekerja dari, maka kita akan menulis penerbit sederhana yang akan membuat maya Husky kami berkeliling secara acak. Jika ini adalah pertama kalinya Anda mengunjungi Clearpath Robotika ROS 101 blog, memulai di sini.
    Membuat ruang kerja dan paket

    Sebelum kita mulai menulis sebuah node, kita perlu membuat sebuah ruang kerja dan paket. Ruang kerja hanya direktori yang menyimpan semua paket Anda. Pertama kita harus membuat sebuah direktori baru.

    mkdir ~ / ros101

    Hal ini menciptakan sebuah direktori di folder rumah Anda, yang akan kita gunakan sebagai direktori kerja. Kita sekarang perlu membuat subdirektori dalam direktori kerja Anda untuk menyimpan semua kode sumber Anda untuk paket Anda.

    mkdir ~ / ros101 / src

    Langkah terakhir untuk menciptakan ruang kerja akan menginisialisasi ruang kerja dengan catkin_init_workspace.

    cd ~ / ros101 / src
    catkin_init_workspace

    Sekarang ruang kerja kami telah dibuat, kita akan membuat paket di direktori src saja kita buat. Hal ini dapat dilakukan dengan menavigasi ke ~ / ros101 / direktori src, yang Anda harus sudah dilakukan pada langkah terakhir, dan menggunakan perintah catkin_create_pkg diikuti oleh apa yang kita inginkan paket disebutkan namanya, dan kemudian diikuti oleh apa paket lain kami paket akan tergantung pada; Perintah ini menciptakan direktori lain untuk paket baru Anda, dan dua file konfigurasi baru di dalam direktori yang dengan beberapa pengaturan default.

    catkin_create_pkg random_husky_driver roscpp std_msgs

    Anda dapat melihat bahwa ini dibuat CMakeLists.txt dan package.xml dalam direktori random_husky_driver; ini juga di mana Anda akan menyimpan semua kode sumber Anda untuk paket Anda. The roscpp dan std_msgs dependensi ditambahkan ke dalam CMakeLIst.txt dan package.xml.
    Menulis penerbit

    Seperti disebutkan dalam posting sebelumnya, penerbit menerbitkan pesan ke topik tertentu. Untuk tutorial ini, kita akan menerbitkan perintah acak dengan topik / husky / cmd_vel untuk membuat visualisasi perjalanan Husky Anda sendiri. Mulai dengan membuat file dalam ~ / ros101 / src / random_husky_driver direktori bernama random_driver.cpp, dan salin kode berikut.

    #include <ros / ros.h>
    #include <geometry_msgs / Twist.h>
    #include <stdlib.h>

    utama int (int argc, char ** argv) {
    // Menginisialisasi ROS, dan set up node
    ros :: init (argc, argv, "random_husky_commands");
    ros :: nh NodeHandle;

    // Ceates penerbit, dan mengatakan itu untuk mempublikasikan
    // dengan topik husky / cmd_vel, dengan ukuran antrian 100
    ros :: Penerbit pub = nh.advertise <geometry_msgs :: Putar> ("husky / cmd_vel", 100);

    // Mengatur nomor acak generator
    srand (waktu (0));

    // Mengatur loop untuk menerbitkan pada tingkat 10Hz
    ros :: tingkat Rate (10);

    sementara (ros :: ok ()) {
    // Mendeklarasikan pesan yang akan dikirim
    geometry_msgs :: Putar msg;
    // Nilai x sembarang antara -2 dan 2
    msg.linear.x = 4 * ganda (rand ()) / ganda (RAND_MAX) -2;
    // Nilai y sembarang antara -3 dan 3
    msg.angular.z = 6 * ganda (rand ()) / ganda (RAND_MAX) -3;
    // Publikasikan pesan
    pub.publish (msg);

    // Penundaan Sampai akhirnya sekarang saatnya untuk mengirim pesan lain
    rate.sleep ();
    }
    }

    Mari kita memecah baris kode ini dengan baris:

    #include <ros / ros.h>
    #include <geometry_msgs / Twist.h>

    Garis-garis ini mencakup header yang kita akan membutuhkan. The <ros / ros.h> header diperlukan untuk fungsi ROS dan <geometry_msgs / Twist.h> ditambahkan sehingga kita dapat membuat pesan dari jenis itu.

    ros :: init (argc, argv, "random_husky_commands");
    ros :: nh NodeHandle;

    Baris pertama, ros :: init, digunakan untuk menginisialisasi node ROS, dan nama itu "random_husky_commands", sementara ros: NodeHandle dimulai node.

    ros :: Penerbit pub = nh.advertise <geometry_msgs :: Putar> ("husky / cmd_vel", 100);

    Penerbitan pesan dilakukan dengan menggunakan ros: Penerbit pub = nh.advertise, diikuti oleh jenis pesan bahwa kita akan mengirim, dalam hal ini adalah geometry_msga :: Twist, dan topik yang kita akan mengirimnya juga, yang bagi kita adalah serak / cmd_vel.

    100 adalah ukuran antrian pesan; yaitu, jika Anda mempublikasikan pesan lebih cepat dari apa yang roscpp dapat mengirim, 100 pesan akan disimpan dalam antrian untuk dikirim. Semakin besar antrian, semakin keterlambatan dalam gerakan robot dalam kasus buffering.

    Oleh karena itu dalam contoh kehidupan nyata, Anda akan ingin memiliki antrian kecil dalam kasus gerakan robot, di mana keterlambatan perintah gerakan yang tidak diinginkan dan bahkan berbahaya, tapi menjatuhkan pesan yang diterima. Dalam kasus sensor, dianjurkan untuk menggunakan antrian yang lebih besar, karena delay diterima untuk memastikan tidak ada data yang hilang.

    ros :: tingkat Rate (10)
    ...
    rate.sleep ()

    ROS mampu mengontrol loop frekuensi menggunakan ros: Tingkat mendikte seberapa cepat loop akan berjalan di Hz. rate.sleep akan menunda sejumlah variabel waktu sehingga siklus loop Anda pada frekuensi yang diinginkan. Akun ini untuk waktu yang dikonsumsi oleh bagian lain dari loop. Semua robot Clearpath memerlukan tingkat lingkaran minimal 10Hz.

    sementara (ros :: ok ())

    The ros :: ok fungsi akan kembali benar kecuali menerima perintah untuk menutup, baik dengan menggunakan perintah kill rosnode, atau oleh pengguna pusing Ctrl-C di terminal.

    geometry_msgs :: Putar msg;

    Hal ini menciptakan pesan kita akan mengirim, msg, dari jenis geometry_msgs: Putar
    msg.linear.x = 4 * ganda (rand ()) / ganda (RAND_MAX) -2;
    msg.angular.z = 6 * ganda (rand ()) / ganda (RAND_MAX) -3;



    Garis-garis ini menghitung x linear acak dan nilai-nilai z sudut yang akan dikirim ke Husky.

    pub.publish (msg)

    Kami akhirnya siap untuk mempublikasikan pesan! Pub.publish menambahkan msg ke antrian penerbit untuk dikirim.
    Kompilasi driver Husky acak

    Kompilasi di ROS di ditangani oleh sistem catkin membangun. Langkah pertama biasanya akan mengatur dependensi paket kami di CMakeLists.txt dan package.xml. Namun ini telah dilakukan bagi kita ketika kita buat paket dan ditetapkan dependensi kami. Langkah berikutnya adalah kemudian untuk menyatakan node baru kami sebagai executable, ini dilakukan dengan menambahkan dua baris berikut ke file CMakeLists.txt di ~ / ros101 / src / random_husky_driver

    add_executable (random_driver random_driver.cpp)
    target_link_libraries (random_driver $ {} catkin_LIBRARIES)

    Baris pertama menciptakan executable disebut random_driver, dan mengarahkan ROS ke file sumbernya. Garis kedua menentukan apa perpustakaan akan digunakan. Sekarang kita perlu membangun ruang kerja kami menggunakan perintah catkin_make di direktori kerja

    cd ~ / ros101
    catkin_make

    Mari kita membuka visualisasi serak seperti yang kita lakukan dalam posting blog sebelumnya.

    roslaunch husky_gazebo husky_empty_world.launch

    Langkah terakhir adalah untuk sumber berkas setup.bash Anda di ruang kerja yang telah Anda buat. Script ini memungkinkan ROS untuk menemukan paket yang terkandung dalam ruang kerja Anda. Jangan lupa proses ini harus dilakukan pada setiap contoh terminal baru!

    Sumber ~ / ros101 / devel / setup.bash

    Sekarang saatnya untuk menguji itu! Pastikan Anda memiliki contoh dari roscore berjalan di terminal yang terpisah, kemudian mulai node.

    rosrun random_husky_driver random_driver

    Sekarang Anda akan melihat Husky berkeliling! Di jendela terminal baru, kita dapat memastikan bahwa simpul kami menerbitkan ke topik / husky / cmd_vel oleh bergema semua pesan tentang topik ini.

    gema rostopic / husky / cmd_vel


    Sekarang Anda akan melihat aliran acak linear x dan nilai-nilai z sudut.


    Pemograman Sistem Operasi Robot
    Januari 28, 2016 • 0 komentar
    Disclaimer: gambar, artikel ataupun video yang ada di web ini terkadang berasal dari berbagai sumber media lain. Hak Cipta sepenuhnya dipegang oleh sumber tersebut. Jika ada masalah terkait hal ini, Anda dapat menghubungi kami di halaman ini.
    Isi dari komentar adalah tanggung jawab dari pengirim. T.I Sniper mempunyai hak untuk tidak memperlihatkan komentar yang tidak etis atau kasar. Jika ada komentar yang melanggar aturan ini, tolong dilaporkan.

    T.I Sniper

    Your description here

    • Follow
    • Autosultan
    • Wa Admin Bisnis
    Copyright ©2010 - 2022 🔥 T.I Sniper.
    • Beranda
    • Cari
    • Posting
    • Trending
    • Tersimpan