问题描述
ROS-Academy-for-Beginners 包安装编译运行启动成功,Gazebo中所有模型可见,在运行键盘控制机器人移动时,新开一个终端,并运行命令:
$ rosrun robot_sim_demo robot_keyboard_teleop.py
如图1,鼠标选中终端,键入i时机器人并未按预想移。
问题原因
直接原因是缺少依赖项ros-kinetic-gazebo-ros-control。
间接原因是在安装过程中,原依赖项安装代码:
rosdep install --from-paths ./src/ROS-Academy-for-Beginners/ --ignore-src --rosdistro=kinetic -y
会报错,参考这篇博客,替换命令为:
rosdep install --from-paths ./src/ROS-Academy-for-Beginners --ignore-src -r
虽然rosdep没再报错,实际上的依赖项仍然没有安装完整,在后续catkin_make时又有缺少依赖项的报错,根据报错内容,我安装了所需依赖项,成功编译。但是,其中的漏网之鱼导致了本文中的问题。在github上,该项目的讨论区中有人列出了相应依赖项,我从中发现了这个包我没有安装上。
解决办法
再开一个新终端,安装这个包。
sudo apt-get install ros-kinetic-gazebo-ros-control
建议
在ROS-Academy-for-Beginners安装过程中rosdep安装依赖项出过问题的,最好按github上该项目的讨论区中列的出相应依赖项都装一下。