ROS学习
ROS学习
rosnode list #列出活跃的节点信息.msg文件就是一个描述ROS中所使用消息类型的简单文本,它放在package的msg目录下,该文件实际上就是每行声明一个数据类型和变量名
ROS客户端库允许使用不同编程语言编写的节点之间互相通信(即节点的生成形式不受到限制)
rospy #python 客户端库
roscpp #c++ 客户端库rosrun和roslaunch
rosrun允许你使用包名直接运行一个包内的节点(不需要知道这个包具体的路径),但是该ros包需要在终端中能找到(即需要source路径),且一个.py或者.cpp文件(可执行文件)就是一个节点。
rosrun [package_name] [node_name]roslaunch可以用来启动定义在launch文件中的多个节点
roslaunch [package] [filename.launch]rolaunch中启动的不一定要是单个节点,也可以是另一个子launch文件,例如:
启动单个节点(可执行程序)
<node pkg="franka_control_node" type="control_node.py" name="franka_driver" output="screen"/>启动另一个launch文件,即启动其中的所有节点
<include file="$(find kinect2_bridge)/launch/kinect2_bridge.launch" />机器人gazebo仿真控制 Matlab Simulink工具箱 基于模型设计MBD
基于Matlab/simulink-ros 联合机器人开发
rosdep install --from-paths src --ignore-src -r -y
#可以将该工作空间内的所有package的依赖项一起安装roslaunch时遇到无法定位节点
ERROR: cannot launch node of type [main_control/position_transform.py]: can't locate node [position_transform.py] in package [main_control]
#1、查看是否source路径 2、赋予文件执行权限 sudo chmod +x aaaaaa.py包的编译和安装
mkdir build
cd build
cmake ..
make
sudo make install
#可以将包安装到/home/xx/.local启动rqt和rqt_plot报错
由于matplotlib版本原因启动rqt_plot报错,降级(升级)后仍无效,可考虑卸载qt5再重装
sudo apt remove ros-kinetic-qt5*
用python写tf的broadcaster
import tf as tf_ros
#在回调函数中写
b1 = tf_ros.TransformBroadcaster()
b1.sendTransform( (b_point0[0],b_point0[1],b_point0[2] ),
tf_ros.transformations.quaternion_from_matrix(T_base_temp),
rospy.Time.now(),
'/temp',
"/panda_link0")
#sendTransform参数为(子坐标系原点在父坐标系的位置,姿态(dx,dy,dz,dw),时刻,子坐标系名称,父坐标系名称)用python写tf的listener
import tf as tf_ros
listener = tf_ros.TransformListener()
(trans,rot) = listener.lookupTransform('/base_link', '/grasp_frame', rospy.Time(0))
#trans为子坐标系原点在父坐标系下的位置,rot为姿态(dx,dy,dz,dw),'/base_link'是父坐标系,'/grasp_frame'是子坐标系,rospy.Time(0)为当前时刻
文章标题:ROS学习
本文作者:Echo
发布时间:2020-11-10, 19:42:44
最后更新:2021-04-26, 21:22:49
原始链接:http://dmzecho.github.io/2020/11/10/ROS%E5%AD%A6%E4%B9%A0/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。