ROS初步了解学习当中的小问题

ROS初步了解学习当中的小问题

我是在ubuntu16.04下安装的ROS的kinetc版本
下面写一些我最开始安装使用上德一些基本的几点小问题,留个记录。

由于网上有许多安装教程,roswiki也有基本上所有安装以及使用教学,所以就不写安装过程了。

1、安装完ROS后,将ROS全局设置的脚本加入到.bashrc文件中。
就是将这句:source /opt/ros/kinetic/setup.bash
可以用sudo gedit ~/.bashrc 打开文件,放在其最下面。

2、安装配置好后就可以建立自己的工作空间了
mkdir -p ~/<空间名>/src
cd ~/<空间名>/src
catkin_init_workspace
以上三句是创建一个工作区路径,这时路径下因该有一个叫做srcd的文件夹了。

3、接下来直白点说就是在工作空间路径下创建将两个文件夹,build和devel
cd ~/<空间名>
catkin_make
source devel/setup.bash (此时因为工作区就在最上层路径所以直接source devel)
第三句就是添加环境,这需要每次开终端都要进行source 一下,可以同问题1中所说德一样,将
source ~/catkin_ws/devel/setup.bash
其中catkin_ws是为创建的工作空间的名字。
接下来重新开终端就可以。
.bashrc文件中最底部的source 的工作空间最先检索。

4、若要在工作空间的 src路径下创建一个功能包(使用catkin_create_pkg),则
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
其中,beginner_tutorials是创建的功能包名,后面是该功能包依赖的三个功能包。运行完后可以看出在beginner_tutorials目录下创建了package.xml和CMakeLists.txt两个文件。

在工作空间的 src下的功能包目录下创建并编辑程序文件
例如C++程序文件
$ cd ~/catkin_ws/src/beginner_tutorials
$ touch hello.cpp
$ gedit hello.cpp
用chmod +x cpp程序名 赋予运行权限
并在cmakelists文件下加入例如
add_executable(tf_listener_realsense src/tf_listener_realsense.cpp)
以及target_link_libraries(tf_listener_realsense ${catkin_LIBRARIES})
最后编译一下,即catkin_make
之后在devel/lib下会有可执行程序

5、如果是添加网上别人的已有的库,则需要声明依赖库
先编辑CMakeList.txt文件,及修改find_package
在之后加上依赖库
其次在package.xml文件中列出依赖库
例如需要roscpp库,则需要将其添加至build_depend(编译依赖)和exec_depend(运行依赖)。
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_export_depend>roscpp</build_export_depend>
<exec_depend>roscpp</exec_depend>

6、一个package下常见的文件、路径有:

├── CMakeLists.txt #package的编译规则(必须)
├── package.xml #package的描述信息(必须)
├── src/ #源代码文件
├── include/ #C++头文件
├── scripts/ #可执行脚本
├── msg/ #自定义消息
├── srv/ #自定义服务
├── models/ #3D模型文件
├── urdf/ #urdf文件
├── launch/ #launch文件

7、rosnode info 加节点名可以查看该节点的输入输出以及其作用

8、保存地图navigation包:
$ rosrun map_server map_saver [-f mapname]
例如$ rosrun map_server map_saver -f /home/xxx/map/zhizaokongjian
/home/xxx/map/为地图目录路径,zhizaokongjian为地图名称,生成后得到zhizaokongjian.yaml和zhizaokongjian.pgm两个文件
启动命令:rosrun map_server map_server navigation_ws/src/maps/名字。

9、我们希望每次回调函数都处理当前时刻最新的一个消息:要达到这个目标有三点,第一点是要设置Publisher的queue_size等于1;第二点是要设置Subscriber的queue_size(消息队列大小)等于1;第三点非常重要,要设置Subscriber的buff_size(缓冲区大小)足够大,大于一个消息的大小。像这样:
#ROS Python
pcdpub = rospy.Publisher(“lidardata”, PointCloud, queue_size=1)
rospy.Subscriber(“lidardata”,PointCloud,self.pcd_resolve_callback,queue_size=1,buff_size=52428800)
原文链接:https://blog.csdn.net/handsome_for_kill/article/details/81984428

10、ROS下CMakeList.txt由下面内容组成:
所需CMake版本(cmake_minimum_required)
软件包名称(project())
查找构建所需的其他CMake / Catkin软件包(find_package())
启用Python模块支持(catkin_python_setup())
消息/服务/动作生成器(add_message_files(),add_service_files(),add_action_files())
生成消息/服务/动作等自定义消息(generate_messages())
指定包的构建信息输出(catkin_package())
要建立的库/可执行文件(add_library()/ add_executable()/ target_link_libraries())
测试(catkin_add_gtest())
安装规则(install())

11、添加PyKDL库:(用于角速度标定)
在工作空间/src中
git clone https://github.com/gt-ros-pkg/hrl-kdl.git

cd …
catkin_make #编译包,
cd hrl-kdl/pykdl_utils 编译安装包
python setup.py
若出现无法定位下载的包则需要:
python setup.py build

sudo python setup.py install

检测是否安装成功(指令)
python
from pykdl_utils.kdl_kinematics import KDLKinematics #若无报错,则成功安装

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值