Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学
https://blog.csdn.net/gpeng832/article/details/73917487
关于SolidWorks导出URDF模型的总结
https://blog.csdn.net/mt_lixinzeng/article/details/80268572
Rviz: RobotModel --Status: Error :如果关节是活动的比如: revolute , continuous 就要为他们编写相应的驱动程序并发布joint_status状态.否则rviz加载robot model之后status会显示错误状态,并且活动的关节也会显示错误.
检查urdf文件语法:check_urdf smartcar.urdf
在indigo版本的ROS中,执行如下命令即可: rosrun urdfdom check_urdf /tmp/pr2.urdf
可视化模型 , gui = true 可以让关节动起来: roslaunch urdf_tutorial display.launch model:=path/to/your/xxx.urdf gui:=true
图形化显示URDF模型 :urdf_to_graphiz my_robot.urdf
origin:xyz以parent link为原点,child link的三维坐标系位置。
origin:rpy child link绕z轴旋转的滚动角(roll),绕y轴方向旋转的俯仰(pitch)角,和绕x轴旋转的偏转(yaw)角.
Things to note:
右手坐标系法则:
分别对应xyz三个方向的值; 相对于原点,如果没有赋值的话就是几何形状的中心点。 为了方便确定map中的右手坐标系,可以在rviz中勾选 show Axes来显示xyz坐标轴。
关于原点
Both of the shapes overlap with each other, because they share the same origin. If we want them not to overlap we must define more origins.
The connection between the body and the head is a continuous joint, meaning that it can take on any angle from negative infinity to positive infinity. The wheels are also modeled like this, so that they can roll in both directions forever.
The only additional information we have to add is the axis of rotation,here specified by an xyz triplet, which specifies a vector around which the head will rotate. Since we want it to go around the z axis, we specify the vector "0 0 1".
revolute joints. This means that they rotate inthe same way that the continuous joints do, but they have strict limits.
This means thatit moves along an axis, not around it. This translational movement is what allows our robot model to extend and retractits gripper arm
Whereas the prismatic joint can only move along one dimension, a planar joint can move around in a plane, or two dimensions. Furthermore, a floating joint is unconstrained, and can move around in any of the three dimensions.
The value of the contents of the ${} construct are then used to replace the ${}. This means you can combine it with other text in the attribute.
This will generate
the contents in the ${} don’t have to only be a property . You can build up arbitrarily complex expressions in the ${} construct using the four basic operations (+,-,*,/), the unary minus, and parenthesis . In Jade and later distros, you can use more than the basic operations listed above, notably sin and cos
joint_state_publisher从ROS参数服务器中读取robot_description
参数, 找到所有non-fixed joint, 发布他们的JointState
消息到/joint_states
话题.
robot_state_publisher从/joint_states
话题中获取机器人joint角度作为输入, 使用机器人的运动学树模型计算出机器人link的3D姿态, 然后将其发布到话题/tf
和 /tf_static
.
在rviz中查看各关节的ff关系
roslaunch urdf_tutorial display.launch model:=llb.urdf gui:=true
https://answers.ros.org/question/198995/problem-converting-simple-urdf-file-in-collada/