看到前面写的博客还是帮助了很多ROS的学习者,我感到非常荣幸。其实我也是一名ROS的新手,ROS的相关资料少,上手难度大,我现在也在摸索着学习,还希望大家都将自己的学习成果在网上或者ROS群里分享。
我看到有些人在运行我前面写的smartcar程序,为了方便大家的学习,我这两天整理了一下代码,已经上传到csdn上,下载请见:
http://download.csdn.net/detail/hcx25909/5487985
代码的内容主要是前边用到的机器人smartcar的urdf文件,已经运行使用的launch文件,大家下载后可以直接编译使用,由于代码在我的计算机上编译时带有路径信息,所以大家编译的时候请使用下面的命令先清除再编译:
rosmake smartcar_description –pre-clean
代码中的urdf文件里室机器人的urdf描述,和上一篇博客中讲的是一样的,launch文件夹中主要有以下文件:
第一个实在gazebo仿真中用到的,需要先运行gazebo,然后再运行。但是貌似有问题,我每次加载到gazebo中的时候似乎物理参数不对,机器人在gazebo里飞来飞去的,至今还没有解决。如果哪位仁兄发现问题了,还请多多指教。
第二个文件是我在绘制模型的时候用到的,主要功能是在rviz中显示机器人模型,文件中的以下代码:
<arg name=“gui” default=“false” />
如果把false改为true,则会打开一个gui的调试界面,可以通过滑动条旋转车轮,如下图所示。默认是false。
第三个文件是在方针的时候用到的,就是前面博客中使用的,会打开arbotix仿真器。
根目录中还有rviz的配置文件urdf.vcg,只要大家在rviz中修改界面或者参数,推出的时候保存,就会自动修改这个文件了。
config文件夹下的是仿真用到的配置文件。
PS:
代码中还有很多问题,请大家多多指教,共同进步。
评论列表(24条)
胡老师,用插件添加相机插件后,相机坐标系是怎么设定的呢?
是urdf模型里相机link的坐标系
请问一下,最新的源码还是这个路径吗?刚刚看CSDN下面的评论说有最新的源码了。我使用的是Kinetic。想参考您的代码构建自己的仿真环境。
csdn评论区应该有别人改好的,可以看下,另外也可以参考《ROS机器人开发实践》中的源码构建
实在没有积分下载了,麻烦把smartcar源码发我邮件,万分感谢!!!
634475229@qq.com
胡老师:
你好!不知道你的模型gazebo中飞来飞去的问题解决没?我的模型也是不着地,没有重力,飞来飞去。
解决了,物理属性的问题,要调整物理参数
具体是怎么个调整方法?调整URDF文件还是,gazebo GUI设置?控制台提示信息如下:
[ WARN] [1530496546.292826009, 0.142000000]: The default_robot_hw_sim plugin is using the Joint::SetPosition method without preserving the link velocity.
[ WARN] [1530496546.292931881, 0.142000000]: As a result, gravity will not be simulated correctly for your model.
[ WARN] [1530496546.292991068, 0.142000000]: Please set gazebo_pid parameters, switch to the VelocityJointInterface or EffortJointInterface, or upgrade to Gazebo 9.
请问下胡老师,怎么调整物理参数呢?是修改URDF文件,还是在Gazebo中设置GUI参数值?我的警告如下:
[ WARN] [1530500106.617843305, 0.308000000]: The default_robot_hw_sim plugin is using the Joint::SetPosition method without preserving the link velocity.
[ WARN] [1530500106.618641593, 0.308000000]: As a result, gravity will not be simulated correctly for your model.
[ WARN] [1530500106.618676604, 0.308000000]: Please set gazebo_pid parameters, switch to the VelocityJointInterface or EffortJointInterface, or upgrade to Gazebo 9.
调整URDF中的物理属性,比如惯性矩阵、质量等
老师,我使用您的marm_description中的机械臂教程中机械臂模型urdf文件,在gazebo仿真中也遇到此问题,The default_robot_hw_sim plugin is using the Joint::SetPosition method without preserving the link velocity.能否详细的指出是那个link 或finger的惯性矩阵出错或应该 改正那个link质量呀?万分感谢。
使用rviz 显示机械臂时出现错误如下[ WARN] [1543582030.112023912]: Interactive marker ‘EE:goal_grasping_frame’ contains unnormalized quaternions. This warning will only be output once but may be true for others; enable DEBUG messages for ros.rviz.quaternions to see more details.请问如何更改.xacro呀?
这个警告不影响功能包,marm是我自己设计的一个机械臂模型,物理参数都是随便设的,符合大概的数量级,但是肯定不准确,主要是为了学习和测试
您好,我现在模型是四轮小车,我现在想在gazebo中仿真,就是给每个轮子设置不同速度,看小车在rviz或者gazebo中走的是什么路线,想请问一下能不能做到,应该怎么样做?
你好,四轮控制也可以用DiffDriveController,请参考husky机器人的代码:
https://github.com/husky/husky_simulator
https://github.com/husky/husky/tree/indigo-devel/husky_control
首先感谢您的回复,我看了一下您说的这个代码,看不太懂,我的意思是想单独设置每个轮子的速度,比如说给每个轮子速度给固定值,看他在仿真环境中是怎么样在运动,应该怎么样来做呢?
diff_drive_controller这个controller可以根据指定的机器人速度计算四个轮子的差速,如果你想单独指定每个轮子的速度,可以设置四个velocity_controllers,然后指定每个controller的速度。
建议先看一下ros_control和ros_ontrollers功能包,然后找使用类似controller的机器人看源码,再移植到自己的机器人上。
好的,谢谢啦 我先自己看下,之前一直不知道要咋搞
想请教一下您,问题一:如果小车的前后轴距不等,比如是一个品字形的四轮小车,那这个控制器适用嘛?问题二:在SW中导出urdf时,如果设置的是行星轮越障机器人(单个轮子呈人字形,平地时整个轮子不360°旋转,只电机带动行星轮绕自身轴旋转;遇到障碍物时,整个轮子绕电机轴翻转)那这个轮子关节的约束关系该怎么设置呢。
古月您好,我想请教一个问题,我使用你的smartcar程序后,launch启动rviz后,Global status那一栏始终是error,Fixed Frame [map] does not exist,这个是什么原因?我用的是ubuntu14.04,indigo
rviz配置问题,把Fixed Frame改成“base_link”
我用的是hydro版,也遇到了和你一样的问题,把fixed frame改成base_link还是不行,请问怎么解决?谢谢
古月,您好!我最近开始学ROS,想请教您一个问题,就是怎么实现用pc端ros系统控制实体机器人?需要什么通讯设备来连接,我这边的机械臂使用usb-can连接pc端的。
你好,ROS是基于网络的,pc和机器人只要都接入同一网络,就可以直接使用ros的节点进行通信。