想修改仿真环境中的模型,修改其中的sdf plane一行
导入gazebo的urdf要删除utfcode这一项
gazebo中乱飞的urdf
————————————————原文链接:https://blog.csdn.net/weixin_36965307/article/details/125343227
导入的urdf的origin 和 实际的pose不同,这个就是坐标系的问题,应该在solid中解决,目前没找到原因。
红x绿y,模型的origin之间应该是叠加的关系。
https://blog.csdn.net/qq_33179208/article/details/70805896讲的坐标系gazebo的
必须要有params这个参数,rviz中才会启动模型
- 添加模型摩擦力,可以防止随便乱动,但是不能解决抖动的问题
2.抖动是collision的问题,模型与地面发生了碰撞应该是
gazebo下载模型
https://blog.csdn.net/BlacKingZ/article/details/112647264
gazebo的插件无法加入问题,
插件的加入有三个过程:
- 建立该插件的link模型
- 设置该插件的joint,保证和模型相连。
- 对该插件进行配置
<link name="imu_link">
<visual>
<origin xyz="0 0 0.0" rpy="0 0 0"/>
<geometry>
<box size="0.2 0.2 0.2"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 0.0" rpy="0 0 0"/>
<geometry>
<box size="0.02 0.02 0.02"/>
</geometry>
</collision>
<inertial>
<mass value="0.1"/>
<inertia ixx="0.000190416666667" ixy="0" ixz="0" iyy="0.0001904" iyz="0" izz="0.00036"/>
</inertial>
</link>
<!-- imu joint -->
<joint name="imu_joint" type="fixed">
<parent link="link_3" />
<child link="imu_link" />
<origin xyz="0 0 0.02" />
</joint>
<gazebo>
<gazebo reference="imu_link">
<sensor name="imu_sensor" type="imu">
<plugin filename="libgazebo_ros_imu_sensor.so" name="imu_plugin">
<ros>
<namespace>/</namespace>
<remapping>~/out:=imu</remapping>
</ros>
<initial_orientation_as_reference>false</initial_orientation_as_reference>
</plugin>
<always_on>true</always_on>
<update_rate>100</update_rate>
<visualize>true</visualize>
<imu>
<angular_velocity>
<x>
<noise type="gaussian">
<mean>0.0</mean>
<stddev>2e-4</stddev>
<bias_mean>0.0000075</bias_mean>
<bias_stddev>0.0000008</bias_stddev>
</noise>
</x>
<y>
<noise type="gaussian">
<mean>0.0</mean>
<stddev>2e-4</stddev>
<bias_mean>0.0000075</bias_mean>
<bias_stddev>0.0000008</bias_stddev>
</noise>
</y>
<z>
<noise type="gaussian">
<mean>0.0</mean>
<stddev>2e-4</stddev>
<bias_mean>0.0000075</bias_mean>
<bias_stddev>0.0000008</bias_stddev>
</noise>
</z>
</angular_velocity>
<linear_acceleration>
<x>
<noise type="gaussian">
<mean>0.0</mean>
<stddev>1.7e-2</stddev>
<bias_mean>0.1</bias_mean>
<bias_stddev>0.001</bias_stddev>
</noise>
</x>
<y>
<noise type="gaussian">
<mean>0.0</mean>
<stddev>1.7e-2</stddev>
<bias_mean>0.1</bias_mean>
<bias_stddev>0.001</bias_stddev>
</noise>
</y>
<z>
<noise type="gaussian">
<mean>0.0</mean>
<stddev>1.7e-2</stddev>
<bias_mean>0.1</bias_mean>
<bias_stddev>0.001</bias_stddev>
</noise>
</z>
</linear_acceleration>
</imu>
</sensor>
</gazebo>
</gazebo>
gazebo颜色不显示的原因
要在下面这块代码中设置
<gazebo reference="base_link">
<material>Gazebo/Pink</material>
</gazebo>
<gazebo reference="link_1">
<material>Gazebo/Yellow</material>
</gazebo>
<gazebo reference="link_2">
<material>Gazebo/Blue</material>
</gazebo>
<gazebo reference="link_3">
<material>Gazebo/Green</material>
</gazebo>
前面urdf的link中设置的颜色,在rviz中会显示。
颜色列表
插件加入
imu的数据读取
ros2 topic list
ros2 topic info /imu
ros2 topic echo /imu
moveit setup assistant不显示模型文件
但是我正常启动rviz看urdf文件是没有问题的,这个地方并不一定是有问题,由于我模型的质心问题,是0 0 4.5 导致模型的visual比较高,所以这个地方看不到,但是经过正常的设置以后是可以完成的。
参考下方链接牛的
注意要保证所有地方的变量名相同,如joint什么的不然就会导致各种插件的链接出错
完整编辑一个urdf文件导入ros2并启动gazebo
坐标系编辑最麻烦:[https://www.bilibili.com/video/BV1a54y1z74q/?p=5&vd_source=8f26fba86844127b4d9a3fb69330ba05]
两个自己模仿别人写的launch文件
** ros2 run moveit_setup_assistant moveit_setup_assistant 用moviet assistant配置,得到配置文件**
https://blog.csdn.net/joyopirate/article/details/129424607
一个是my_moviet_rviz.launch.py还有一个是gazebo.launch.py,先启动gazebo这个就可以完成gazebo和moviet联动,moviet中规划好路径后gazebo会进行运动。
realsense 导入
https://github.com/SyrianSpock/realsense_gazebo_plugin/blob/master/urdf/realsense-RS200.macro.xacro 参考这个
xacro转换成urdf为空的时候,可能prefix没有设置好
realsense插件找不到报错
[Err] [Plugin.hh:212] Failed to load plugin librealsense_gazebo_plugin.so: librealsense_gazebo_plugin.so: cannot open shared object file: No such file or directory
如何添加ros2中的包到路径中
- 先export写入到路径中
export AMENT_PREFIX_PATH=~/Desktop/code/d2lros2/chapt2/chapt2_ws/install/my_moviet:$AMENT_PREFIX_PATH - 再source
- source ~/Desktop/code/d2lros2/chapt2/chapt2_ws/install/setup.bash
source ~/Desktop/code/d2lros2/chapt2/chapt2_ws/src/mii3/my_moviet/install/setup.bash - 再检查环境变量
echo $AMENT_PREFIX_PATH
然后就可以了
不显示模型,gazebo
之前再mymii3版本的urdf中,就是没有添加深度相机里面,使用的上面那个spawn_entity_cmd函数,然后可以正常使用,现在添加深度相机的插件以后,只能用下面这个。