先锋机器人ROS入门——rosaria安装、测试及学习
1.安装MobileSim
MobileSim是一个移动机器人仿真软件,即启动之后,在不连接实体机器人的情况下,运行rosaria不会报错,即是连接上了一个虚拟的机器人主机。进入MobileSim下载选择下载 mobilesim_0.9.8+ubuntu12_i386.deb,通过Ubuntu Software Center或者通过指令dpkg -i进行安装。
2.安装rosaria
2.1先建立工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws
catkin_make
echo “source ~/catkin_ws/devel/setup.bash” >> ~/.bashrc
2.2clone ROSARIA到工作空间
cd ~/catkin_ws/src
git clone https://github.com/amor-ros-pkg/rosaria.git
2.3下载安装MobileRobots ARIA Ubuntu Package
网址: http://robots.mobilerobots.com/wiki/Aria
安装: sudo dpkg -i libaria_2.9.1+ubuntu12_i386.deb
返回工作空间编译时catkin_make,出现 libAria.so
类的报错:
skipping incompatible /usr/local/Aria/lib/libAria.so when searching for -lAria/usr/bin/ld: cannot find -lAria
/usr/bin/ld: cannot find -lAria
解决办法是重新编译Aria:
cd /usr/local/Aria
make clean #清除原有的编译
make -j4 #重新编译
那么,返回工作空间再进行编译即可。
再进行编译,如果编译报错,尝试 catkin_make –force-cmake
(此处显示有问题,不是简写是两个-)
3.测试
首先打开mobilesim
然后roscore
然后 rosrun rosaria Rosaria
输出转态消息:rostopic echo /RosAria/pose
则会有数据输出,数据类型为nav_msgs/Odometry
输出话题:rostopic list
输出结果为:
/RosAria/battery_recharge_state
/RosAria/battery_state_of_charge
/RosAria/battery_voltage
/RosAria/bumper_state
/RosAria/cmd_vel
/RosAria/motors_state
/RosAria/parameter_descriptions
/RosAria/parameter_updates
/RosAria/pose
/RosAria/sonar
/RosAria/sonar_pointcloud2
/rosout
/rosout_agg
/tf
4.相关的话题
4.1 订阅的话题
cmd_vel
对于速度的控制为:rostopic pub -1 /RosAria/cmd_vel geometry_msgs/Twist '[0.1, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
4.2 发布的话题
- pose 能够发布里程计的信息,通常是10HZ更新一次
- bumper_state能够发布缓冲的状态 sonar能够读出声呐的状态,出来的数据是二维的x,y,Z始终是0
- battery_state_of_charge 电池的状态的百分比(取值范围0~1)
- battery_voltage 电压
- battery_recharge_state充电的状态
- motors_state 发动机的状态
4.3 服务service
- enable_motors 控制电机的启动
- disable_motors 禁止电机运动
4.4 参数说明
- trans_accel (float, default: none, use robot controller
- firmware configuration) 平移的加速度控制,可以动态设置
- trans_decel (float, default: none, use robot controller firmware configuration) 平移的减速度控制,可以动态设置
- rot_accel (float, default: none, use robot controller firmware configuration) 旋转的加速度控制,可以动态设置
- rot_decel (float, default: none, use robot controller firmware configuration) 旋转的减速度控制,可以动态设置
- cmd_vel_timeout (float, default: 0.6 sec) 速度指令等待时间
- odom_frame (string, default: odom) 发布机器人里程状态的frame
- base_link_frame (string, default: base_link) 发布base_link tf
5.ROSARIA示例学习
cd ~/catkin_ws/src
git clone https://github.com/pengtang/rosaria_client.git
cd ..
catkin_make
source devel/setup.bash
step1 连接机器人
case1 连接真实的机器人
先打开机器人,然后配置参数
sudo usermod -a -G dialout $USER
dialout 是linux 默认自带的用户群组,在/erc/groups
文件夹中即可看到,而设备文件如下面的tty就属于该群组,所以将用户名添加到该群组才能对设备文件进行读写。
sudo chmod a+rw /dev/ttyUSB0 //赋予端口权限
或者命令sudo chmod 777 /dev/ttyUSB0
case2 Mobilesim仿真机器人
打开mobilesim,在一个新建的terminal中输入MobileSim
启动
step2 启动rosaria
依次打开terminal,输入roscore
,roslaunch rosaria_client rosaria_client_launcher.launch
。也可不用launch文件,在三个terminal中依次输入roscore
,rosrun rosaria RosAria
,rosrun rosaria_client interface
。
对于真实的机器人:rosrun rosaria RosAria
改为rosrun rosaria RosAria _port:=/dev/ttyUSB0
。
step3 根据程序输出的指示进行操作
指令说明:
- Up Arrow: 前进
- Down Arrow: 后退
- Left Arrow: 逆时针转
- Right Arrow: 顺时针转
- Spacebar: 停止运动
- A: 增加线速度
- Z: 减少线速度
- S: 增加角速度
- X: 减少角速度
- Q: 退出控制