- 
                Notifications
    You must be signed in to change notification settings 
- Fork 12
ROS Introduction
        Robert Haschke edited this page Apr 27, 2020 
        ·
        9 revisions
      
    - middleware, i.e. inter-process communication
- hardware abstraction for robots
- message definitions (for RPC)
- package management system, tailored towards development
- collection of open-source software packages
- multi language: C++, Python, Java
- multi platform: (Ubuntu Linux), Windows 10, OSX
- topics (publish - subscribe)
- services (remote procedure calls)
- nodes: logical computing components, several per process possible
- central naming service (roscore)
- remapping: renaming of nodes, topics, etc.
- central parameter storage
- extends cmake to facilitate package management dependencies, installation to standard locations
- catkin_make, catkin_make_isolated, catkin tools
- hierarchical stacking of workspaces: /opt/ros/indigo->/vol/nirobots/ros/indigo->/homes/juser/ros- load config with: source <base dir>/setup.bash
 
- load config with: 
- workspace structure
- src/
- build/
- devel/
- setup.bash
 
 
mkdir -p ~/ros/src
cd ~/ros/src
source /opt/ros/*/setup.bash
catkin_init_workspace
git clone https://github.com/rhaschke/lecture
cd ..
catkin_makemkdir ~/ros
cd ~/ros
source /opt/ros/*/setup.bash
catkin config --init
mkdir src
cd src
# catkin create pkg lecture
# or clone from repository
git clone https://github.com/rhaschke/lecture
cd lecture
catkin buildFor more details on catkin config and catkin create pkg follow the links.
- package.xml
- defines folder as a ROS package
- defines dependencies: build, test, run
- author, license, package information
 
- CMakeLists.txt
source ~/ros/devel/setup.bash
roscore &
rostopic pub -r 1 chatter std_msgs/String "Hello World" &
rostopic echo chatterInspect ros universe:
rosnode list
rostopic list
rosservice list
rosmsg list
rqt_graphrosrun roscpp_tutorials talker chatter:=foobar
rosrun roscpp_tutorials listener chatter:=foobar