Skip to content

Commit a86dec6

Browse files
author
Svetly
committed
Edit readme for ROS Kinetic
1 parent 85c4cc0 commit a86dec6

1 file changed

Lines changed: 49 additions & 65 deletions

File tree

README.md

Lines changed: 49 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
NXT-ROS
22
=======
33

4-
A software stack containing tools for using LEGO Mindstorms NXT with ROS.
4+
A software stack containing tools for using LEGO Mindstorms NXT with ROS.
55

6-
This branch depends on:<br> &#8226; ROS Groovy<br> &#8226; Python 2.x<br> &#8226; NXT-Python v2.2.2
6+
This branch depends on:<br> &#8226; ROS Kinetic<br> &#8226; Python 2.x<br> &#8226; NXT-Python v2.2.2
77

88
Originally forked from: http://stack-nxt.foote-ros-pkg.googlecode.com/hg
99

@@ -21,55 +21,27 @@ The original documentation has more detailed information:
2121
###Package status
2222

2323
These packages use `rosbuild` and were tested
24-
with ROS Groovy on Ubuntu 12.04.
24+
with ROS Kinetic on Ubuntu 16.04.
2525

2626
The following features have been tested:
2727

2828
**nxt** stack:
2929

3030
- **nxt_controllers**
31-
Compiles ok, the base_controller has been tested.
32-
3331
- **nxt_description**
34-
Working.
35-
3632
- **nxt_lxf2urdf**
37-
Compiles ok, un-tested.
38-
3933
- **nxt_msgs**
40-
Working.
41-
4234
- **nxt_python**
43-
Working.
44-
4535
- **nxt_ros**
46-
Working.
47-
There is a new option to read the position of a motor as the absolute angle from 0 to 2*pi radians. By default the motor position is measured as the total +/- rotation in either direction, relative to the starting position.
48-
4936
- **nxt_ros_test**
50-
Working.
51-
5237
- **nxt_rviz_plugin**
53-
Working.
54-
5538
**nxt_robots** stack:
56-
5739
- **nxt_robot_gyro_car**
58-
Working. The robot model can be viewed in Rviz.
59-
6040
- **nxt_robot_kit_test**
61-
Working. This is a test package, so the robot looks like a pile of disconnected LEGO parts when viewed in Rviz.
62-
6341
- **nxt_robot_sensor_car**
64-
Working. The robot model can be viewed in Rviz.
65-
6642
**nxt_apps** stack:
67-
6843
- **nxt_assisted_teleop**
69-
Working.
70-
7144
- **nxt_teleop**
72-
Working.
7345

7446
.
7547

@@ -79,42 +51,62 @@ Working.
7951
Upgrade the firmware on your NXT brick.
8052
The minimum required version is 1.28, but 1.31 is the latest as of Jan 2016.
8153

82-
Clone the Groovy branch of this repository:
54+
Clone the Kinetic branch of this repository:
8355
> $ cd ~/
84-
> $ git clone https://github.com/dbworth/NXT-ROS.git --branch groovy
56+
> $ git clone https://github.com/dbworth/NXT-ROS.git --branch kinetic
8557
86-
Copy the 3 stacks into your ROS Workspace.
58+
Copy the 3 stacks into your ROS package path.
8759
Note: you only need the `nxt` stack to get started.
88-
> $ cp NXT-ROS/nxt ~/ROS_WORKSPACE/
89-
> $ cp NXT-ROS/nxt_robots ~/ROS_WORKSPACE/
90-
> $ cp NXT-ROS/nxt_apps ~/ROS_WORKSPACE/
91-
92-
Add the stacks to your $ROS_PACKAGE_PATH.
93-
You might like to add these commands to your `~/.bashrc` file.
94-
> $ export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/ros_workspace/nxt
95-
> $ export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/ros_workspace/nxt_robots
96-
> $ export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/ros_workspace/nxt_apps
60+
> $ cp NXT-ROS/nxt $ROS_PACKAGE_PATH
61+
> $ cp NXT-ROS/nxt_robots $ROS_PACKAGE_PATH
62+
> $ cp NXT-ROS/nxt_apps $ROS_PACKAGE_PATH
9763
9864
**Install dependencies:**
9965

10066
NXT-Python v2.2.2 is automatically installed in the `/src` directory of the `nxt_python` package when we run `rosmake`.
10167

102-
You can install the other dependencies using the Ubuntu Package Manager or ROSdep:
103-
> $ sudo apt-get install ros-groovy-ros-comm ros-groovy-common-msgs ros-groovy-joystick-drivers ros-groovy-visualization ros-groovy-navigation ros-groovy-orocos-kinematics-dynamics
104-
> $ sudo aptitude install libusb-dev python-usb python-bluez
105-
106-
or
107-
108-
> $ sudo rosdep install -y nxt
109-
> $ sudo rosdep install -y nxt_robots
110-
> $ sudo rosdep install -y nxt_apps
68+
You can install the other dependencies using the Ubuntu Package Manager or ROSdep:
69+
> $ sudo apt-get install ogre-1.9-tools ros-kinetic-bfl libcppunit-dev libcppunit-1.13-0v5 ros-kinetic-joy ros-kinetic-robot-pose-ekf ros-kinetic-costmap-2d ros-kinetic-navigation
70+
> $ sudo apt-get install libbluetooth-dev
71+
> $ sudo pip install PyBluez PyUSB
11172
11273
Compile the stacks of packages:
11374
> $ rosmake nxt
75+
76+
Than you will get an *error* while compilling *linest_rviz_plugin*.
77+
Thats because of parse error at **"BOOST_JOIN"**.
78+
This macros are used to define a namespace name.
79+
I don't know what the right way to fix this but I know two ways to solve it:
80+
1. Add to file, where including file with **"BOOST_JOIN"** inside (like **has_binary_operator.hp**)
81+
82+
Example:
83+
```
84+
#ifndef Q_MOC_RUN
85+
#include <boost/type_traits/detail/has_binary_operator.hp>
86+
#endif
87+
```
88+
89+
But it didn't help me. Mb I used it wrong way.
90+
91+
2. Compile **nxt** by parts.
92+
93+
Compile first part of **nxt** with last **libboost**, then downgrade to **1.48** and continue compiling and then go back to last version and end compiling.
94+
> $ sudo dpkg -P --force-all libboost-all-dev
95+
> $ sudo dpkg -P --force-all libboost1.58-dev:amd64
96+
> $ sudo dpkg -P --force-all libboost1.58-tools-dev
97+
98+
> $ rosmake nxt
99+
100+
> $ sudo apt-get update
101+
> $ sudo apt-get -f install
102+
103+
> $ rosmake nxt
104+
105+
114106
> $ rosmake nxt_robots
115107
> $ rosmake nxt_apps
116108
117-
**Set the USB permissions:**
109+
**Set the USB permissions:**
118110

119111
Add a new group:
120112
> $ sudo groupadd lego
@@ -125,11 +117,8 @@ Add yourself to that group:
125117
For Ubuntu versions before 12.0, create a udev rules file for the lego group that you just created:
126118
> $ echo "BUS==\"usb\", ATTRS{idVendor}==\"0694\", GROUP=\"lego\", MODE=\"0660\"" > /tmp/70-lego.rules && sudo mv /tmp/70-lego.rules /etc/udev/rules.d/70-lego.rules
127119
128-
For Ubuntu 12.04 use:
129-
> $ echo "SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0694\", GROUP=\"lego\", MODE=\"0660\"" > /tmp/70-lego.rules && sudo mv /tmp/70-lego.rules /etc/udev/rules.d/70-lego.rules
130-
131120
Restart udev:
132-
> $ sudo restart udev
121+
> $ sudo system
133122
134123
Log-out or restart your computer.
135124

@@ -158,15 +147,15 @@ Connect a touch sensor to port 1.
158147
> $ rosrun nxt_python touch_sensor_test.py
159148
160149
When you push the touch sensor, the output on the screen will change.
161-
The node automatically exits are 5 seconds.
150+
The node automatically exits are 5 seconds.
162151

163152
Now connect a motor to port A.
164153
> $ roslaunch nxt_ros_test test.launch
165154
166155
Check the status of the touch sensor using ROS:
167156
> $ rostopic echo /my_touch_sensor
168157
169-
When you push the touch sensor, the boolean value published in the ROS msg will change.
158+
When you push the touch sensor, the boolean value published in the ROS msg will change.
170159

171160
Read the position of the motor using ROS:
172161
> $ rostopic echo /joint_states
@@ -209,7 +198,7 @@ You can also use a joystick.
209198
Configure the joystick using the instructions here:
210199
http://wiki.ros.org/joy/Tutorials/ConfiguringALinuxJoystick
211200

212-
> $ roslaunch nxt_teleop teleop_joy.launch
201+
> $ roslaunch nxt_teleop teleop_joy.launch
213202
214203
With the Microsoft XBox 360 joystick, you need to hold down the top-left button. The left joystick controls turning, the right joystick goes forward.
215204

@@ -231,8 +220,3 @@ Test the controller using the provided test script:
231220
232221

233222
=============
234-
235-
236-
237-
238-

0 commit comments

Comments
 (0)