最近在做6個han's cute機械人的協同控制,在這裡記錄一下roslaunch的配置技巧。
先上**和分行解釋:
namespace: dxl_manager
serial_ports:
pan_tilt_port:
port_name: "/dev/ttyusb0"
baud_rate: 250000
min_motor_id: 0
max_motor_id: 25
update_rate: 50
namespace: dxl_manager
serial_ports:
pan_tilt_port:
port_name: "/dev/ttyusb1"
baud_rate: 250000
min_motor_id: 0
max_motor_id: 25
update_rate: 50
namespace: dxl_manager
serial_ports:
pan_tilt_port:
port_name: "/dev/ttyusb2"
baud_rate: 250000
min_motor_id: 0
max_motor_id: 25
update_rate: 50
namespace: dxl_manager
serial_ports:
pan_tilt_port:
port_name: "/dev/ttyusb3"
baud_rate: 250000
min_motor_id: 0
max_motor_id: 25
update_rate: 50
namespace: dxl_manager
serial_ports:
pan_tilt_port:
port_name: "/dev/ttyusb4"
baud_rate: 250000
min_motor_id: 0
max_motor_id: 25
update_rate: 50
namespace: dxl_manager
serial_ports:
pan_tilt_port:
port_name: "/dev/ttyusb5"
baud_rate: 250000
min_motor_id: 0
max_motor_id: 25
update_rate: 50
在寫機械人內部的ros話題時需要注意,話題或者動作伺服器等名應該寫成相對的,比如:
cute_arm_controller/follow_joint_trajectory,這樣在我們的group下才能在其前面加上自動加上字首,變成:
cute_robot_1/cute_arm_controller/follow_joint_trajectory
如果是這種絕對的就不可以:
/cute_arm_controller/follow_joint_trajectory
所以說我們平時編寫機械人的時候為了後續的開發性也應該注意這一點。
我們啟動了多個鍵盤控制在同乙個視窗,然後發現這樣竟然可以將鍵盤按鍵分發下去,同時控制6個機械臂進行動作,倒是省的我們進行映**,算是個意外收穫。
因為我們的機械人是usb埠連線上來的,需要在ubuntu給讀寫許可權。
sudo chmod 777 /dev/ttyusb0
但是這個許可權在重啟後會失效,而在需要控制多個機械人的時候需要每次都把6個埠許可權開啟,很麻煩,這裡使用了c語言呼叫shell程式設計的技巧,通過寫乙個指令碼來替我們完成,這樣後來每次只需要執行一次這個指令碼程式就行:
#include #include #include #include using namespace std;
string get_output_of_cmd(const string &cmd)
return ret;
}bool get_exit_status_of_cmd(const string &cmd)
int main (int argc, char** ar**)
編譯一下:
g++ shell.cpp -o shell.out
然後執行./shell.out就行。 ROS多機械人通訊
ros設計的靈魂就在於其分布式計算。乙個優秀的節點不需要考慮在哪台機器上執行,它允許實時分配計算量以最大化的利用系統資源。有乙個特例 驅動節點必須執行在跟硬體裝置有物理連線的機器上 在多個機械人上使用ros是一件很簡單的事,你只需要記住一下幾點 1.你只需要乙個master,只要在乙個機器上執行它就...
ROS教程(二十二) ROS在多機械人上的使用
description 本教程將展示如何在兩台機器上使用ros系統,詳述了使用 ros master uri 來配置多台機器使用同乙個master。tutorial level intermediate next tutorial 自定義訊息型別 目錄 概述跨機器執行的 talker listene...
ROS學習筆記32(ROS在多機械人上的使用)
ros設計的靈魂就在於其分布式計算。乙個優秀的節點不需要考慮在哪台機器上執行,它允許實時分配計算量以最大化的利用系統資源。有乙個特例 驅動節點必須執行在跟硬體裝置有物理連線的機器上 在多個機械人上使用ros是一件很簡單的事,你只需要記住一下幾點 假如說我們希望在兩台機器上分別執行talker lis...