Robomaster TT使用手册
ROS机器人集群的仿真与实践详解三:ROS入门无人机
配置网络
使用RMTT前,需要配置网络
将这个按钮拨到下面,此时开机电脑就能收到RMTT的WIFI信号,连接上后,配置RMTT连接到路由器的WIFI
roscd rmtt_driver/scripts
roscd rmtt_driver/scripts
./set_sta.py TianbotOffice www.tianbot.com
./set_sta.py TianbotOffice www.tianbot.com
TianbotOffice
是笔者的路由器名字,www.tianbot.com
是笔者的路由器密码,仅需改为你的就OK
此时就已经配网成功,将按钮拨到上面,切换到路由模式,半分钟左右,飞机的扇叶就开始旋转,每当RMTT成功连接路由器后都会开启扇叶旋转 查询RMTT的IP地址
roscd rmtt_driver/scripts
./rmtt_scan_ip.py
roscd rmtt_driver/scripts
./rmtt_scan_ip.py
启动RMTT
roslaunch rmtt_driver rmtt_bringup.launch drone_ip:=192.168.0.215
roslaunch rmtt_driver rmtt_bringup.launch drone_ip:=192.168.0.215
192.168.0.215
就是./rmtt_scan_ip.py
查询到的IP地址 此时添加机器人的描述信息
roslaunch rmtt_description rmtt_description.launch
roslaunch rmtt_description rmtt_description.launch
直接启动 打开Rviz,新打开一个终端Rviz 按照如图所示配置即可
观看RMTT发布的话题信息
rostopic echo /tof_btm
rostopic echo /tof_btm
rostopic echo /altitude
rostopic echo /altitude
rostopic hz /imagine
rostopic hz /imagine
rostopic hz /imu_data
rostopic hz /imu_data
在此延伸,使用rostopic list -v
,观察更多的话题信息
飞机起飞
rostopic pub /takeoff std_msgs/Empty
rostopic pub /takeoff std_msgs/Empty
飞机降落
rostopic pub /land std_msgs/Empty
rostopic pub /land std_msgs/Empty
rostopic pub -r 10 /cmd_vel geometry_msgs/Twist "linear:
x: 0.1
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
rostopic pub -r 10 /cmd_vel geometry_msgs/Twist "linear:
x: 0.1
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
然后用Tab键补齐,就可以控制RMTT的移动
使用Map坐标系
如果需要使用Map坐标系,则要将RMTT放置到地图中
我们使用的是普通地图,非夜光地图
rosservice list
rosservice list
普通地图为/set_downvision
,夜光地图为/set_hdmap
rosservice call /set_downvision "data: True"
rosservice call /set_downvision "data: True"
rosservice call /set_hdmap "data: True"
rosservice call /set_hdmap "data: True"
data是布尔型,将默认的False改为True 此时Rviz中的image的图像就变为下置摄像头,且基坐标系Fixed Frame多了map 必须启用rosservice的地图,且起飞才能更改坐标系map 起飞RMTT,将基坐标系改为map,
rostopic pub /takeoff std_msgs/Empty
rostopic pub /takeoff std_msgs/Empty
不同情况下的TF树
这是开启TF后的效果 打开rqt观察一下TF树
当没有使用
rosservice call /set_downvision "data: True"
rosservice call /set_downvision "data: True"
时TF树为 我们还开始关联到world坐标系
rosrun tf static_transform_publisher 0 0 0 0 0 0 world /map 20
rosrun tf static_transform_publisher 0 0 0 0 0 0 world /map 20
此时的TF树为
三个TF树反应了不同坐标系下的TF关系,值得深思!
WARNING
注意:如果涉及到多台机器人时,需要注意命名空间的问题
如果您观看了空地协同两台RMTT与两台TBMini的话,可能会使用下面方式来启动机器人,
roslaunch rmtt_driver rmtt_bringup.launch drone_ip:=192.168.0.215 \
drone_name:=rmtt_01 local_port:=8889 video_port:=11111
roslaunch rmtt_driver rmtt_bringup.launch drone_ip:=192.168.0.215 \
drone_name:=rmtt_01 local_port:=8889 video_port:=11111
roslaunch rmtt_description rmtt_description.launch drone_name:=rmtt_01
roslaunch rmtt_description rmtt_description.launch drone_name:=rmtt_01
此时您使用时rostopic list
或rossevice list
观察的话,会发现话题名称前都有一个/rmtt_01
此时的命令就为
rostopic echo /rmtt_01/tof_btm
rostopic echo /rmtt_01/tof_btm
rostopic pub /rmtt_01/takeoff std_msgs/Empty
rostopic pub /rmtt_01/takeoff std_msgs/Empty