【baxter學習】測試baxter_world.launch問題彙總
- 問題一
-
- 1.問題
- 2.原因分析
- 3.解決方法
- 問題二
-
- 1.問題
- 2.原因
- 3.解決方法
最近在學習機器人關節控制,想要嘗試一下baxter,按照:
https://www.freesion.com/article/34231292646/
進行了編譯安裝。
問題一
1.問題
在運作下面代碼時,
roslaunch baxter_gazebo baxter_world.launch
出現了如下報錯:
GazeboRosControlPlugin missing while using DefaultRobotHWSim, defaults to true.
This setting assumes you have an old package with an old implementation of DefaultRobotHWSim, where the robotNamespace is disregarded and absolute paths are used instead.
If you do not want to fix this issue in an old package just set to true.
2.原因分析
因為包的版本不對應造成的:
GazeboRosControlPlugin missing使用DefaultRobotHWSim時,預設為true。
此設定假定您有一個包含DefaultRobotHWSim的舊實作的舊包,其中忽略robotNamespace,而是使用絕對路徑。
如果不想在舊包中修複此問題,隻需将設定為true。
3.解決方法
參考連結: link.
1.在baxter_ws檔案下找到所有包含“ros_control_plugin"的檔案
grep -rl "ros_control plugin" ./
我的是:
./src/baxter_common/baxter_description/urdf/baxter.urdf
./src/baxter_common/baxter_description/urdf/baxter_base/baxter_base.gazebo.xacro
./install/share/baxter_description/urdf/baxter.urdf
./install/share/baxter_description/urdf/baxter_base/baxter_base.gazebo.xacro
2.将其中四個檔案中ros_control_plugin下的增加
<legacyModeNS>true</legacyModeNS>
如:
<gazebo>
<plugin name="baxter_ros_control" filename="libbaxter_gazebo_ros_control.so">
<robotNamespace>/robot</robotNamespace>
<legacyModeNS>true</legacyModeNS>
</plugin>
</gazebo>
問題二
1.問題
在運作下面代碼時,
roslaunch baxter_gazebo baxter_world.launch
出現了如下報錯:
DeserializationError cannot deserialize: unknown error handler name 'rosmsg’
2.原因
參考連結: link.
The problem is that you are mixing older and newer Debian packages. you don’t have the latest version of genpy yet.
dpkg -l | grep genpy shows version 0.6.7. But the newly installed version of ros-kinetic-rosbridge-suite was generated with the latest version of genpy and therefore expect it to be available.
簡單的說,ros中的一些pkg的依賴pkg沒有相對應的更新(雖然有但版本舊)
3.解決方法
sudo apt-get install ros-kinetic-genpy