如何使用solid works自动生成并导出urdf文件参照:
https://www.cnblogs.com/21207-iHome/p/7821269.html
自动生成的文件中还存在一些问题需要修改。
- package.xml文件中的email是不合法
<maintainer email="me@email.com" />
- display.launch文件里中gui参数要设为True,否则无法打开Joint State Publish工具
<arg name="gui" default="False" />
改完后将生成的文件移动到ROS源代码目录中即工作空间中的src文件夹下,然后编译即可。
cd ws
catkin_make
source ~/ws/devel/setup.bash
-下面执行roslaunch my_robot display.launch,在rviz中添加RobotModel,并将Fixed Frame设为base_link,此时机器人就能正确显示出来。
执行roslaunch my_robot display.launch遇到的问题
问题一、报错‘ascii’ codec can’t decode byte 0xe6 in position 13: ordinal not in range(128)The traceback for the exception was written to the log file
原因工作空间路径存在中文需要改成英文
修改完后,还要修改几处才能运行:
- ~/.bashrc中的环境变量,把你ROS工作空间目录的中文改成英文。
- 把你ROS工作空间build目录下的CMakeCache.txt文件删除。
- 把你ROS工作空间build目录下的Makefile文件中的中文改成英文,比如"桌面"替换为"desktop"。
问题二、[WARN] [1588564677.171522]: The ‘use_gui’ parameter was specified, which is deprecated. We’ll attempt to find and run the GUI, but if this fails you should install the ‘joint_state_publisher_gui’ package instead and run that. This backwards compatibility option will be removed in Noetic.
[ERROR] [1581780877.646970]: Could not find the GUI, install the ‘joint_state_publisher_gui’ package
解决方法:
先安装joint_state_publisher_gui
sudo apt-get install ros-kinetic-joint-state-publisher-gui
然后把之前launch文件中的所有joint_state_publisher换成joint_state_publisher_gui
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />
参考文章:
https://blog.csdn.net/weixin_45168199/article/details/105915769
https://blog.csdn.net/maizousidemao/article/details/103366618