ROS进阶学习手记 6 -- Configure ROS Network - 利用PC1控制PC2上的乌龟

ROS进阶学习手记 6 – Configure ROS Network - 利用PC1控制PC2上的乌龟 Configure the ROS Networks: Quick Reference: http://blog.csdn.net/sonictl/article/details/46986565#t4 Above is for the higher user’s reference. Below is the tutorial for the beginners: 在完成了上一节,我们已经可以自己写node向某个topic发送某个msg data structure的Messages。 这一节我想完成 Remote 通信的任务,真正体现ROS的分布式计算的特点。 参考: http://wiki.ros.org/ROS/NetworkSetup http://wiki.ros.org/ROS/Tutorials/MultipleMachines 网络连接: 物理连接: 使用Bridge方式桥接,相当于现在有了4台电脑用网线连接起来。(怎么建立见文后附录) 配置虚拟机1的ip为: IP addr:192.168.2.111 Mask:255.255.255.0 DefaultGateway: 192.168.2.1 Bcast:default 配置宿主机1的ip为: IP addr:192.168.2.1 Mask:255.255.255.0 DefaultGateway: 192.168.2.1 Bcast:default 配置虚拟机2的ip为: IP addr:192.168.2.222 Mask:255.255.255.0 DefaultGateway: 192.168.2.1 Bcast:default 配置宿主机2的ip为: IP addr:192.168.2.2 Mask:255.255.255.0 DefaultGateway: 192.168.2.1 Bcast:default 好,我们假设建立了ubt - ubt之间的连接(怎么建立见文后附录,或http://blog.csdn.net/sonictl/article/details/47005273) 我们在ubt_for_ROS1上ping 192.168.2.222, 在ubt_for_ROS2上ping 192.168.2.111, 都能ping通。 用netcat测试端口是否连通:http://wiki.ros.org/ROS/NetworkSetup#Further_check:_netcat 在ubt_for_ROS1上: $ netcat -l 1431 在ubt_for_ROS2上:

READ MORE

ROS进阶学习手记 5 -- 使用Eclipse开发robot_cleaner

ROS进阶学习手记 5 – 使用Eclipse开发robot_cleaner 接上一节, ======= 开始用Eclipse写一个发布给Turtlesim_node驱动和角度Msg的 my_node1 ===== 参考Youtube上两个视频: [CS460] ROS Tutorial 4.1 Turtlesim Cleaner Application - An Overview [CS460] ROS Tutorial 4.2 Moving in a Straight Line (Turtlesim Cleaner) 我们来在Eclipse里写这个node的代码。 2015年7月21日09:59:26 建立一个名为robot_cleaner的Package,生成robot_cleaner_node,向turtlesim_node发送msg. topic info: topic_name: /turtle1/cmd_vel topic_type: geometry_msgs/Twist Message info: $ rosmsg show geometry_msgs/Twist show the data struct: geometry_msgs/Vector3 linear float64 x float64 y float64 z geometry_msgs/Vector3 angular float64 x float64 y float64 z $ rostopic echo /turtle1/cmd_vel 得到: linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.

READ MORE

ROS进阶学习手记 4 -- 使用Eclipse开发ROS

ROS进阶学习手记 4 – 使用Eclipse开发ROS http://wiki.ros.org/IDEs 遇到无法导入到eclipse的问题,用下一篇文章的思路进行解决: http://www.cnblogs.com/freedomshe/archive/2013/05/16/configure_eclipse_in_catkin.html http://blog.csdn.net/sujun3304/article/details/18572017 http://answers.ros.org/question/52013/catkin-and-eclipse/ 【步骤】 在catkin ’s workspace下建立自己的package: beginner_tutorials Transfor your catkin project into Eclipse project. i.e. create the .project files. import the Eclipse’s project into Eclipse. Try to compile, build and debug your code. 中途我遇到一点问题,就是我在exbot上下载安装的Ubuntu12.04 for ROS in Hydro(开发版), 打开Eclipse发现Project Pannel里不显示任何项目。后来重装了一次才解决。 完成了make the Eclipse Project以后,就可以follow the http://wiki.ros.org/IDEs to import » Build. 我做得还比较顺利。 下面就是运行了: Running and debugging your executables within Eclipse As for building within Eclipse, the crucial step here is to set the required environment variables correctly in the launch configuration.

READ MORE

ROS进阶学习手记 3 -- RViz工具的学习2,Markers- Sending Basic Shapes

ROS进阶学习手记 3 – RViz工具的学习2,Markers- Sending Basic Shapes Markers: Sending Basic Shapes (C++) 我是从这里开始:http://wiki.ros.org/rviz 在它之下,先玩完这一部分:http://wiki.ros.org/rviz/UserGuide 今天要玩这一部分: http://wiki.ros.org/rviz/Tutorials/Markers%3A%20Basic%20Shapes Description: Shows how to use visualization_msgs/Marker messages to send basic shapes (cube, sphere, cylinder, arrow) to rviz. 2. Intro Unlike other displays, the Marker Display lets you visualize data in rviz without rviz knowing anything about interpreting that data. Instead, primitive objects are sent to the display throughvisualization_msgs/Marker messages, which let you show things like arrows, boxes, spheres and lines. This tutorial will show you how to send the four basic shapes (boxes, spheres, cylinders, and arrows).

READ MORE

ROS进阶学习手记 2 -- RViz工具的学习1

ROS进阶学习手记 2 – RViz工具的学习1 ROS中提供了很多强大的功能,我们学习完前面的基本知识之后要继续进行深入。除了RviZ,还有一种叫 Stage simulator 也能模拟机器人motion 1、认识rviz rviz是ROS中一款强大的3D可视化工具,这个玩意在后面可是要频繁用到的,是必须要弄明白的,详细的教程可以参考wiki:http://wiki.ros.org/rviz/UserGuide 我们可以在里面创建自己的机器人,并且让机器人动起来。还可以创建地图,显示3D点云等等,总之,想在ROS中显示的东东都可以在这里显示出来。当然这些显示都是通过消息的订阅来完成的,机器人通过ROS发布数据,rviz订阅消息接收数据,然后显示,这些数据也是有一定的数据格式的,可以参考下面的链接: http://wiki.ros.org/rviz/DisplayTypes 看到上面的机器人了吧,是不是很酷,在rviz中,这样的机器人模型是通过urdf文件描述的,具体urdf文件怎么写,参考wiki: http://wiki.ros.org/urdf ================================ 2. 开始RViz的学习 我是从这里开始:http://wiki.ros.org/rviz 在它之下,先玩这一部分:http://wiki.ros.org/rviz/UserGuide 3. RViz的安装和运行 目录 Troubleshooting Install or build rviz Install from debian repository Build from source Startup Displays Adding a new display Display Properties Display Status Moving Displays Built-in Display Types Configurations 0.4 and above 0.3 and below Views Panel The different camera types Orbital Camera (default) FPS (first-person) Camera Top-down Orthographic Views Coordinate Frames The Fixed Frame The Target Frame Tools Move Camera (Keyboard shortcut: m) Select (Keyboard shortcut: s) 2D Nav Goal (Keyboard shortcut: g) 2D Pose Estimate (Keyboard shortcut: p) Time Stereo Plugins Troubleshooting

READ MORE

ROS进阶学习手记 1 -- turtlebot_simulator(1)

ROS进阶学习手记 1 – turtlebot_simulator(1) 这是ROS入门手记的最后一节,指明了ROS进阶学习的方向: http://blog.csdn.net/sonictl/article/details/46893443 ROS进阶学习手记 1 – turtlebot_simulator(1) 1. 用turtlebot来进行机器人模拟 Robot Stack下的TurtleBot Package, link: http://wiki.ros.org/Robots/TurtleBot 由于我们只要了解他的simulator, 故turtlebot_simulator Stack的link: wiki.ros.org/turtlebot_simulator 这个模拟的空间叫做Gazebo World, 故它的link: http://wiki.ros.org/turtlebot_simulator/Tutorials/hydro/Explore%20the%20Gazebo%20world ROS中提供了很多强大的功能,我们学习完前面的基本知识之后要继续进行深入。 turtlebot_simulator Stack的link: wiki.ros.org/turtlebot_simulator 我们跑了两个命令,把simulator打开看看了: Install the software $ sudo apt-get install ros-hydro-turtlebot-simulator Start the simulation $ source /opt/ros/hydro/setup.bash $ roslaunch turtlebot_gazebo turtlebot_empty_world.launch 得到下图: 当然你可能得到一个 30 秒无法连接Master 的问题,最后找了一圈,也不知怎么就解决了~~ 如果你遇到,可能这里有点帮助:http://answers.ros.org/question/65402/gazebo-fail-to-connect-to-master-in-30-seconds-it-does-not-run-from-the-very-first-time/ gazebo 这个工具是ROS中的物理仿真环境,gazebo本身就是一款机器人的仿真软件,基于ODE的物理引擎,可以模拟机器人以及环境中的很多物理特性,这个软件可以稍作了解,并不是后面开发所必须要的。 教程见: http://wiki.ros.org/simulator_gazebo/Tutorials/StartingGazebo 2. 接下来要学习的工具: 1、rviz rviz是ROS中一款强大的3D可视化工具,这个玩意在后面可是要频繁用到的,是必须要弄明白的,详细的教程可以参考wiki:http://wiki.ros.org/rviz/UserGuide 我们可以在里面创建自己的机器人,并且让机器人动起来。还可以创建地图,显示3D点云等等,总之,想在ROS中显示的东东都可以在这里显示出来。当然这些显示都是通过消息的订阅来完成的,机器人通过ROS发布数据,rviz订阅消息接收数据,然后显示,这些数据也是有一定的数据格式的,可以参考下面的链接: http://www.ros.org/wiki/rviz/DisplayTypes(待改) 看到上面的机器人了吧,是不是很酷,在rviz中,这样的机器人模型是通过urdf文件描述的,具体urdf文件怎么写,参考wiki: http://www.ros.org/wiki/urdf(待改) 2、tf tf是ROS中的坐标变换系统,在机器人的建模仿真中经常用到。 ROS中主要有两种坐标系: (1)固定坐标系:用于表示世界的参考坐标系; (2)目标坐标系:相对于摄像机视角的参考坐标系。 教程见:http://www.ros.org/wiki/tf(待改)

READ MORE

ROS学习手记13 -- 完成了初级的教程以后

ROS学习手记13 – 完成了初级的教程以后 完成了初级的教程以后 完成了初级的教程,我们理解了概念,但还需掌握运用ROS开发机器人的方法。 首先,要知道如何学习ROS,获取有关ROS的资讯。主要的学习和参考材料如下: ROS wiki官网的使用 ROS 官网的API文档 ROS 第三方教材,书籍 本博客的“ROS进阶学习手记”将是一个比较实用的路径 一个比较好的ROS教学大纲: 1. 关于ROS官网的layout(页面结构)情况 关于ROS官网的layout(资源分布)情况,我们要好好了解:http://wiki.ros.org/ROS/Tutorials/NavigatingTheWiki LandingPage上的导航栏主要有:文档, 包, 新闻三个栏目 在ROS Package Pages里,结构是如下: 在ROS Stack Pages里,结构是如下: 2. 复习: ROS Stack Package等各元件结构: [Stack1] [Package1] [Nodes1] [Nodes2] [Messages] [Services] [Libraries] [Tools] [/Package1] [Package2] [Nodes] [Messages] [Services] [Libraries] [Tools] [/Package2] [/Stack1] [Stack2] … [/Stack2] 3. 可供参考的材料 ========= 开发辅助文档 ========= 在ROS的开发过程中,你会用到比较多的文档: 1. Packages’ List: http://www.ros.org/browse/list.php 2. APIs’ List http://wiki.ros.org/APIs 3. ROS cpp Dev Docs for API http://docs.ros.org/diamondback/api/roscpp/html/index.html 4. ROS cpp http://wiki.ros.org/roscpp 5. ========= 更多参考教材 =========

READ MORE

ROS学习手记12 -- ROS问题检测工具roswtf

ROS学习手记12 – ROS问题检测工具roswtf roswtf - ros, what the fuck? 其实很好记~~ Getting started with roswtf Description: Basic introduction to the roswtf tool. Keywords: roswtf Tutorial Level: BEGINNER Next Tutorial: Navigating the wiki 目录 Checking your installation Trying it online Errors Before you start this tutorial, please make sure your roscore is NOT running. Checking your installation roswtf examines your system to try and find problems. Let’s try it out: $ roscd $ roswtf You should see (detail of the output varies):

READ MORE

ROS学习笔记10 - 编写编译和检验Service Node

ROS学习笔记10 - 编写编译和检验Service Node ROS学习笔记10 - 编写编译和检验Service Node 百度文库:http://wenku.baidu.com/view/e14d5e18dd88d0d232d46a37 Writing a Service Node Here we’ll create the service (“add_two_ints_server”)node which will receive two ints and return the sum. Change directories to your beginner_tutorialspackage you created in your catkin workspace previous tutorials: cd ~/catkin_ws/src/beginner_tutorials Please make sure you have followed the directions in the previous tutorialfor creating the service needed in this tutorial,creating the AddTwoInts.srv (be sure to choose the rightversion of build tool you’re using at the top of wiki page in the link).

READ MORE