创建工作空间
mkdir -p catkin_ws/src
cd src
catkin_init_workspace
cd ..
创建功能包
cd src
catkin_create_pkg black_letter std_msgs rospy
catkin_make
注意source devel/setup.bash
通过launch启动多个节点
<launch>
<node name = "publish_node" pkg = "black_envelope" type = "publisherrrr.py" output = "screen"/>
<node name = "subscribe_node" pkg = "black_envelope" type = "subscriberrrr.py" output = "screen"/>
</launch>
写好以后注意设置py文件的权限,否则会报错找不到节点xxx.py在packagexxx中
ROS入门之——浅谈launch_Python_沐棋的博客-CSDN博客 https://blog.csdn.net/weixin_41995979/article/details/81784987
参数可以直接用rospy的方式启动ros但需要事先通过roscore启动主节点,直接使用roslaunch的方式启动,无需单独roscore
rostopic list
rostopic echo /“”
rostopic 点对点通信
subscriber
publisher
pub_and_sub.launch
rosnode list and rqt_console
server
client
launch
简单来说,topic是单向传递,一个发送一个订阅。而service是双向的,一个服务器一个客户端,客户端将输入发给服务器,服务器按照既定的算法将计算的输出返回给客户端。
值得注意的是,如果自定义数据结构的话,例如srv,要修改package中的CMakeLists.txt,解一些注释,如图
srv
由于设置了output="screen"所以控制台无输出信息
datetime获取时间
1.先导入库:import datetime
2.获取当前日期和时间:now_time = datetime.datetime.now()
3.格式化成我们想要的日期:strftime()
比如:“2016-09-21”:datetime.datetime.now().strftime('%Y-%m-%d')
4.在当前时间增加1小时:add_hour=datetime.datetime.now()+datetime.timedelta(hours=1) #需要导入timedelta库
格式“小时”:now_hour=add_hour.strftime('%H')
5.时间的三种存在方式:时间对象,时间字符串,时间戳。
(1)字符串转datetime:
string = '2014-01-08 11:59:58'
time1 = datetime.datetime.strptime(string,'%Y-%m-%d %H:%M:%S')
print time1
2014-01-08 11:59:58
(2)datetime转字符串:
time1_str = datetime.datetime.strftime(time1,'%Y-%m-%d %H:%M:%S')
time1_str
'2014-01-08 11:59:58'
(3)时间戳转时间对象:
格式参数 主从机time1 = time.localtime()
time1_str = datetime.datetime.fromtimestamp(time1)
bashrc表示当前用户名下的环境信息 export表示扩展的环境变量
工具箱rqt组件
网友评论