RIA-E100机器人仿真以及遇到的坑
1、背景介绍
RIA E100是硅步机器人推出的一款用于学习ROS的移动平台,它在满足ROS移动平台学习使用的情况之下又有一定的实用性,是一款学习和应用都能应付自如的移动平台。(具体介绍见官网)
本人后期做实验可能需要用到这一款机器人,但是因为不能长期借用实物,故而先采用仿真来做,这一过程也遇到了许多问题,今天跑通了仿真,在此做个记录,提点自己,也希望能帮到其他人。
2、安装使用
这一部分内容,以下两篇博文写得很详尽,可以参照他们的步骤来操作:
ROS虚拟仿真环境安装使用
ROS机器人 RIA-E100使用
当然,其实我觉得这款机器人的作者在操作源码中的 README.md 文件中写得就已经比较完备
源码地址:https://github.com/gaitech-robotics/RIA-E100
3、所遇问题
问题一:在运行 $roslaunch e100_sim gazebo.launch 命令时,Gazebo加载环境时等待或者加载失败
解决方案:推荐使用Ubuntu16.04+Ros-Kinetic,这样能避免很多问题。
问题二:在运行 $roslaunch e100_sim gazebo.launch 命令时,出现下列报错
[INFO] [1627022985.978190, 4654.079000]: Loading controller: ria_base_controller
[ERROR] [1627022985.981850164, 4654.081000000]: Could not load controller 'ria_base_controller' because controller type 'diff_drive_controller/DiffDriveController' does not exist.
[ERROR] [1627022985.981920074, 4654.081000000]: Use 'rosservice call controller_manager/list_controller_types' to get the available types
[ERROR] [1627022986.983237, 4654.315000]: Failed to load ria_base_controller
分析:参考相关博客,我们可以看出,无法加载 ‘ria_base_controller’ 这一模块,是因为它所用的消息结构类型 type ‘diff_drive_controller/DiffDriveController’ 不存在,而这一消息类型是由与 diff_drive_controller 相关的 ros 包所定义,而且这个包的名字很可能就叫 diff_drive_controller,于是可以把这个百度一下,果然找到了它的出处,那接下来的事情就好办了。
解决方案:安装这个 ros 包
sudo apt install ros-kinetic-diff-drive-controller
完结撒花~因为我不会放图,就不放了。
4、参考文献
[1] http://www.gaitech.net/cpzx/info.aspx?itemid=161&lcid=22
[2] https://blog.csdn.net/weixin_43924621/article/details/108610476
[3] https://blog.csdn.net/weixin_43924621/article/details/109051946
[4] https://blog.csdn.net/liuyuekelejic/article/details/109054480