ROS:机器人系统设计(连接摄像头、Kinect、激光雷达、URDF建模)
目录
一.连接摄像头
二.连接Kinect
三.连接激光雷达
四.URDF机器人建模
1.link
2.joint
3.robot
4.创建机器人建模的功能包
5.launch文件
6.建模简单机器人
7.建模摄像头
8.建模kinect
9.激光雷达建模
一.连接摄像头
sudo apt-get install ros-noetic-usb-cam
roslaunch usb_cam usb_cam-test.launch
rqt_image_view
二.连接Kinect
sudo apt-get install ros-kinetic-freenect-*
git clone https://github.com/avin2/SensorKinect.git
cd SensorKinect/Bin
tar xvf SensorKinect093-Bin-Linux-x86-v5.1.2.1.tar.bz2
sudo ./install.sh
注:如果使用zsh编译器,通配符*会无法识别。
需要在.zshrc文件中添加
setopt nonomatch #让zsh支持*通配符
三.连接激光雷达
sudo apt-get install ros-noetic-rplidar-ros
rosrun rplidar_ros rplidarNode
四.URDF机器人建模
URDF:Unified Robot Description Format,统一机器人描述格式。
1.link
描述机器人某个刚体部分的外观和物理属性。
尺寸(size)、颜色(color)、形状(shape)、惯性矩阵(inertial matrix)、碰撞参数(collision properties)。
<visual>:描述机器人link部分的外观参数。
<inertial>:描述link的惯性参数。
<collision>:描述link的碰撞参数。
<link name="link name"><inertial>......</inertial><visual>......</visual><collision>......</collision>
</link>
2.joint
描述机器人关节的运动学和动力学属性。
包括关节运动的位置和速度限制。
根据关节运动形式,可将其分为6种形式。
<calibration>:关节的参考位置,用来校准关节的绝对位置。
<dynamics>:描述关节的物理属性,例如阻尼值、物理静摩擦力等,经常在动力学仿真用。
<limit>:描述运动的一些极限值,包括关节运动的上下限位置、速度限制、力矩限制。
<mimic>:描述关节与已有关节的关系。
<safety_controller>:描述安全控制参数。
<joint name="name of the joint" type="joint type"><parent link="parent_link"/><child link="child_link"/><calibration.../><dynamics damping.../><limit effort.../>
</joint>
3.robot
一个完整的机器人模型,有一系列<link>和<joint>组成。
<robot name="name of the robot"><link>......</link><link>......</link><joint>......</joint><joint>......</joint>
</robot>
4.创建机器人建模的功能包
catkin_create_pkg mrob_description urdf xacro
urdf:存放机器人模型的URDF或xacro文件
meshes:存放URDF中引用的模型渲染文件
launch:保存相关启动文件
config:保存rviz的配置文件
5.launch文件
joint_state_publisher_gui:发布每个joint(除fixed类型)的状态,而且可以通过UI界面对joint进行控制。
robot_state_publisher:将机器人各个links、joints之间的关系,通过TF的形式,整理成三维姿态信息发布。
<launch><param name="robot_description" textfile="$(find mbot_description)/urdf/mbot_base.urdf" /><!-- 设置GUI参数,显示关节控制插件 --><param name="use_gui" value="true"/><!-- 运行joint_state_publisher节点,发布机器人的关节状态 --><!--打开joint_state_publish_gui--><node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" /><!-- 运行robot_state_publisher节点,发布tf --><!--打开joint_state_publish_gui--><node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" /><!-- 运行rviz可视化界面 --><node name="rviz" pkg="rviz" type="rviz" args="-d $(find mbot_description)/config/mbot_urdf.rviz" required="true" />
</launch>
6.建模简单机器人
首先在config下放置需要的rviz文件。
<?xml version="1.0" ?>
<robot name="mbot"><link name="base_link"><visual><origin xyz=" 0 0 0" rpy="0 0 0" /><!--描述link坐标角度 --><geometry><cylinder length="0.16" radius="0.20"/><!-- cylinder 圆柱体、length高、radius半径--></geometry><material name="yellow"><color rgba="1 0.4 0 1"/><!--a代表透明度,1是不透明 --></material></visual></link>
<!--关节--><joint name="left_wheel_joint" type="continuous"><origin xyz="0 0.19 -0.05" rpy="0 0 0"/><parent link="base_link"/><child link="left_wheel_link"/><axis xyz="0 1 0"/></joint>
<!--左轮子--><link name="left_wheel_link"><visual><origin xyz="0 0 0" rpy="1.5707 0 0" /><geometry><cylinder radius="0.06" length = "0.025"/></geometry><material name="white"><color rgba="1 1 1 0.9"/></material></visual></link><!--右轮子-->
<joint name="right_wheel_joint" type="continuous"><origin xyz="0 -0.19 -0.05" rpy="0 0 0"/><parent link="base_link"/><child link="right_wheel_link"/><axis xyz="0 1 0"/></joint><link name="right_wheel_link"><visual><origin xyz="0 0 0" rpy="1.5707 0 0" /><geometry><cylinder radius="0.06" length = "0.025"/></geometry><material name="white"><color rgba="1 1 1 0.9"/></material></visual></link>
<!--万向轮-->
<joint name="front_caster_joint" type="continuous"><origin xyz="0.18 0 -0.095" rpy="0 0 0"/><parent link="base_link"/><child link="front_caster_link"/><axis xyz="0 1 0"/></joint><link name="front_caster_link"><visual><origin xyz="0 0 0" rpy="0 0 0"/><geometry><sphere radius="0.015" /></geometry><material name="black"><color rgba="0 0 0 0.95"/></material></visual></link><!--万向轮--><joint name="back_caster_joint" type="continuous"><origin xyz="-0.18 0 -0.095" rpy="0 0 0"/><parent link="base_link"/><child link="back_caster_link"/><axis xyz="0 1 0"/></joint><link name="back_caster_link"><visual><origin xyz="0 0 0" rpy="0 0 0"/><geometry><sphere radius="0.015" /></geometry><material name="black"><color rgba="0 0 0 0.95"/></material></visual></link></robot>
7.建模摄像头
<!--摄像头--><link name="camera_link"><visual><origin xyz=" 0 0 0 " rpy="0 0 0" /><geometry><box size="0.03 0.04 0.04" /><!--摄像头形状,以及长宽高--></geometry><material name="black"><color rgba="0 0 0 0.95"/></material></visual></link><joint name="camera_joint" type="fixed"><origin xyz="0.17 0 0.10" rpy="0 0 0"/><parent link="base_link"/><child link="camera_link"/></joint>
8.建模kinect
在meshes文件中添加kinect渲染文件
链接:https://pan.baidu.com/s/1x2EZuAqY4eLMQ3l_ZmxvJA
提取码:e98j
<!--rgb深度相机--><link name="kinect_link"><visual><origin xyz="0 0 0" rpy="0 0 1.5708"/><geometry><!--添加meshes纹理文件--><mesh filename="package://mbot_description/meshes/kinect.dae" /></geometry></visual></link><joint name="laser_joint" type="fixed"><origin xyz="0.15 0 0.11" rpy="0 0 0"/><parent link="base_link"/><child link="kinect_link"/></joint>
9.激光雷达建模
<!--激光雷达--><link name="laser_link"><visual><origin xyz=" 0 0 0 " rpy="0 0 0" /><geometry><cylinder length="0.05" radius="0.05"/></geometry><material name="black"/></visual></link><joint name="laser_joint" type="fixed"><origin xyz="0 0 0.105" rpy="0 0 0"/><parent link="base_link"/><child link="laser_link"/></joint>
ROS:机器人系统设计(连接摄像头、Kinect、激光雷达、URDF建模)相关推荐
- ros 机器人系统设计、urdf机器人建模
目录 机器人的定义 机器人的组成 移动机器人系统构建 传感器的使用 urdf 机器人建模 建模实践 机器人的定义 自动执行工作的机器装置.可以根据预先编写的程序或者接受人类指挥来行动,最终目标是使其能 ...
- ROS学习笔记------ROS机器人系统设计-----基础编程 day 7 2019/3/2 帅某(URDF机器人建模,urdf功能包的建立,urdf相关模型建立代码已经上传)
URDF机器人建模 相关urdf代码链接: https://download.csdn.net/download/weixin_43262513/10990016 1.urdf介绍 URDF(Unif ...
- ROS机器人应用(6)—— 激光雷达建图和导航
文章目录 一.激光雷达建图 二.建图算法切换及其优缺点 三.自主导航 四.多点导航 一.激光雷达建图 小车开机,连接WIFI,密码:dongguan. 启动激光建图(服务端) ssh -Y wheel ...
- ROS中阶笔记(二):机器人系统设计—URDF机器人建模
ROS中阶笔记(二):机器人系统设计-URDF机器人建模 文章目录 01 URDF理论 1.1 什么是URDF 1.2 模型< robot > 1.2.1 < link > e ...
- ROS中阶笔记(一):机器人系统设计—ROS系统下连接外部传感器
ROS中阶笔记(一):机器人系统设计-ROS系统下连接外部传感器 文章目录 01 连接摄像头 1.1 ROS下连接usb_cam 1.1.1 前期准备 1.1.2 问题 1.1.3 安装usb_cam ...
- ros如何订阅关节力矩信息_ROS中阶笔记(二):机器人系统设计—URDF机器人建模...
1 URDF理论 1.1 什么是URDF Unified Robot Description Format,统一机器人描述格式: ROS中一个非常重要的机器人模型描述格式: 可以解析URDF文件中使用 ...
- ROS学习(六)机器人系统设计
ROS学习(六) 机器人系统设计 机器人的定义与组成 机器人系统构建 URDF机器人建模 机器人系统设计 查看指针中的具体成员变量 show turtlesim/Pose 机器人的定义与组成 执行机构 ...
- 【从零开始的ROS四轴机械臂控制】(二) - ROS与Gazebo连接,Gazebo仿真及urdf文件修改
[从零开始的ROS四轴机械臂控制(二)] 四.urdf文件及gazebo仿真 1.simple_arm示例 (1)config文件夹 (2)launch文件夹 (3)meshes文件夹 (4)urdf ...
- ROS机器人建模与仿真(一)--URDF机器人建模
前言 经过ROS的保姆级教程之后,相信大家对ROS应该有一个基本的认识了!关于各种工具的使用其实等到真正有所需求之后再去查找即可,roswiki始终是最好的最一手的信息来源.本系列的博客主要用来记录如 ...
- ROS机器人建模与仿真(一)——URDF模型的建立和改进
申明:本系列参考古月大神教材<ROS机器人开发实践>第六章内容,结合自己学习过程和遇到的问题逐一分解,争取能够吃透!欢迎大家一起讨论! URDF 是 ROS 中机器人模型的描述格式,包含对 ...
最新文章
- composer PHP Fatal error: Allowed memory size of 报错解决
- linux下的zz命令,linux中cut命令的用法
- 【Structs2】struts2单例多例以及spring整合的问题
- 运维工程师如果将web服务http专变为https
- QT5获取CPU编号和硬盘序列号
- MVC的初步认识理论
- cocos2d 创建工程bat文件
- Atitti css transition Animation differ区别
- 【POJ 3623】 Best Cow Line, Gold (后缀数组)
- 方舟服务器设置文档,方舟云服务器设置
- 关于新冠疫情,美国专家们终于认定了这9大事实
- UE4-目录结构简介
- 生活随记-参观一大会址须知
- 华为 eNSP easy ip转换实验+NAT服务器
- 一文带你学明白java虚拟机:C1编译器,HIR代码优化
- 绕过CDN查询真实IP方法
- 服务器连接数据库mysql
- 互联网行业的一些职位缩写
- 013. 跟郑军老师再聊科幻
- matlab上机考试怎么考,MATLAB上机作业