哪家做网站最好,推广的主要目的是什么,旅游网站建设主要工作,网站模板素材下载ROS学习记录2018.7.10
1.ROS基础了解
开源机器人操作系统ROS#xff08;robot operation system#xff09;
分级#xff1a;
1.计算图集#xff08;一种网络结构#xff09; 1.节点#xff1a;执行运算的进程#xff08;做基础处理的单元#xff09;2.消息#x…ROS学习记录2018.7.10
1.ROS基础了解
开源机器人操作系统ROSrobot operation system
分级
1.计算图集一种网络结构 1.节点执行运算的进程做基础处理的单元2.消息有严格数据结构的通讯3.主题发布者/订阅者之间的媒介类似报纸、凤凰新闻这类4.服务一个请求/一个回应的唯一的ROS控制器类似常说的服务器2.文件系统集ROS代码组织架构 1.包package软件各种文件的组织2.堆stack包的集合注manifest为提供元数据、许可信息、文件间依赖关系、编译参数。3.社区集代码库联合系统
构造函数
与类同名的函数在调用类的时候会启动构造函数对类进行操作。
析构函数
与类同名但名前多了~符号的函数在释放类的时候会启动析构函数对类进行内部释放操作。
ros::NodeHandle成员介绍
1.NodeHandle::advertise
回调函数void connectCallback(const ros::SingleSubscriberPublisher pub); 例ros::Publisher pub handle.advertisestd_msg::String(“name”, 1, (ros::SubscriberStatusCallback) connectCallback);
2.NodeHandle::subscribe
回调函数void Foo::Callback(const std_msg::String::ConstPtr message); 例ros::Subscriber sub handle.subscribe (“name”, 1, Foo::Callback);
3.NodeHandle::serviceClient
例ros::ServiceClient client handle.serviceClienstd_msg::String(“name”);
4.NodeHandle::serviceServer
例ros::ServiceServer service handle.advertiseService (“name”,Callback);
2.ROS使用
1.基础操作
$ rospack find ‘nameofstack’查找安装过的功能包集 $ rosls ‘nameofstack’显示功能包集下的文件列表 $ roscd ‘nameofstack’进入功能包文件夹
2.创建ROS功能包
$ roscreate-pkg [name] [depend1] [depend2] [depend3]
3.继续对ROS的了解学习理论
了解ROS操作命令ROS基本工具OpenCVSLAM等但无法进行实际操作。 继续ROS了解学习SLAM与导航部分
4.研究学习
经过自己研究学习通过了ROS环境变量和工作空间的创建并使用了virgo_test包进行了编译并通过。
5.开始操作ROS
利用系统命令rospack find、roscreat-pkg、rosmake、rosnode等完成相应的动作。 创建了新的功能包并编译。 使用了turtlesim功能包打开海龟节点窗口 打开turtle_teleop_key控制海龟移动 使用命令你个查看主题、查看消息、字段 使用rostopic pub命令操作海龟曲线运动圆圈。 但使用的是-1参数即仅运行一次而去掉该参数时节点持续运行未退出但是海龟仍是仅执行了一次运动利用rostopic echo 查看消息信息发现消息也仅发出一次未能做到控制海龟持续运动。 使用rostopic pub命令时若要使海龟持续运动需使用-r 10参数。 使用服务rosservice工具可新建服务新建一只海龟。
6.使用参数服务器查看所有共享数据及相关信息。
在之前新建的功能包内创建新节点并使用VIM工具编写2个.cpp文件用于例程练习用。 编译创建并编写的节点运行节点。
7.使用srv文件
编写服务节点通过srv文件提供3 ints求和运算 编写客户节点通过srv文件计算3个ints数的和并显示。 也可使用如下语句调用srv服务 $ rosservice call add_3_inits 1 2 3
8.使用msg文件
编写发布节点发布msg文件中定义的类型消息 编写订阅节点接收msg文件中定义的类型消息并显示。
9.根据
《ROS培训文档.ppt》 、《ROS学习文档.doc》进行学习。 把代码拷贝到虚拟机内进行catkin_make编译编译通过。 期间出现过2个重要问题 权限问题解决 $ sudo chmod 777 –R * 单包运行问题解决 $ source ./devel/setup.bash
10.看/virgo_frame/virgo_motion代码
但代码比较散乱复杂并且注释较少。 考虑直接在ros里运行直接通过终端看节点主题以及消息类型可更直观的看出该节点的属性。 全体catkin_make通过但单包运行异常。 后发现是需要 $ source ./devel/setup.bash 注每次启动项目都要source。
查看关系图 $ rqt_graph
有两个主题并且使用如下语句也可以看到 $ rostopic list
可查看该主题类型 $ rostopic type /motion/odom 可查看消息类型 $ rosmsg show std_msgs/String 可看到打印的消息数据 $ rostopic echo /motion/odom
之后我想使用话题发布消息需要自己编写节点于是找了小乌龟节点试。 启动乌龟界面 $ rosrun turtlesim turtlesim_node 再启动按键控制乌龟的节点 $ rosrun turtlesim turtle_teleop_key
查看过消息类型后知道了自己应该发送的消息是什么了。 开始自己创建功能包 $ catkin_creat_pkg turtle_ctrl std_msgs roscpp rospy 编译一下 $ catkin_make –pkg turtle_ctrl 新建.cpp文件并编入代码。 编译 $ catkin_make –pkg turtle_ctrl 但有很多错误。 CMakeList.txt和package.xml需要修改依赖项和源文件修改过后通过编译。 程序设计的是前进一次、后退一次、左转一次。
查看关系图$ rqt_graph
11.
附点
。