carmen
Carnegie Mellon Robot Navigation Toolkit http://carmen.sourceforge.net/
How-To Download, Configure, and Make Carmen on Ubuntu 7.04
Download Carmen from SourceForge
http://downloads.sourceforge.net/carmen/carmen-0.6.6-beta.tgz?modtime=1178804560&big_mirror=0
Extract file
tar -xzvf carmen<tab>"
Make symlink
ln -s carmen<tab> carmen
Install following the Installation Guidelines
http://carmen.sourceforge.net/getting_carmen.html
./configure will give you many errors. Here is how to correct most of them quick and dirty. Read below to see step by step how to arrive at these packages:
*Answer N to Python bindings
1 Should Python Bindings be installed: [y/N] N
*Answer N to oldlaser (we want new laser)
1 Should the old laser server be used instead of the new one: [y/N] N
*Accept all robots but SegWay
*Remove camera from Makefile packages
./configure
Address the output of ./configure piece by piece:
1 ./configure
2 Using $CC as gcc...
3 Found processor unknown.
4 Congratulations. You are running Linux.
5 Found kernel 2.6.20-16-generic.
6 This doesn't look like SuSE!
7 Searching for canlib...
8 Could not find Kvaser canlib header file. I looked for
9 /usr/include/canlib.h
10 but it does not seem to exist.
11
12 Searching for GTK... not found.
13 I tried to execute pkg-config gtk+-2.0
14 and got this response:
15
16 Package gtk+-2.0 was not found in the pkg-config search path.
17 Perhaps you should add the directory containing `gtk+-2.0.pc'
18 to the PKG_CONFIG_PATH environment variable
19 No package 'gtk+-2.0' found
20
21 If you do not have graphics, CARMEN's display modules will not compile, but
22 all other modules should compile without problem. Please install gtk 2.0,
23 or re-run ./configure with --nographics.
Kvaser Canlib
Kvaser canlib.h can be found here: http://www.kvaser.com/download/index_developer.htm
tar -xzvf the archive and then copy canlib.h to appease ./configure
cp ~/linuxcan_v2/include/canlib.h /usr/include/canlib.h
gtk+-2.0
1 Searching for GTK... not found.
2 I tried to execute pkg-config gtk+-2.0
3 and got this response:
4
5 Package gtk+-2.0 was not found in the pkg-config search path.
6 Perhaps you should add the directory containing `gtk+-2.0.pc'
7 to the PKG_CONFIG_PATH environment variable
8 No package 'gtk+-2.0' found
apt-get install libgtk2.0-*
libraries and .h files
Now the .h files will need some libraries installed. First vi /etc/apt/source.list and uncomment the restricted universe repositories. Then apt-get update; apt-get install the following packages
gtk+-2.0 = apt-get install libgtk2.0-*
tcpd.h = apt-get install libwrap0-deb
jpeglib.h = apt-get install libjpeg-dev
zlib.h = apt-get install lib*zlib*
Wand = ?
Java = apt-get install j2sdk1.4
doxygen = apt-get install doxygen doxygen-doc doxygen-docs doxygen-gui
SWIG = apt-get install swig swig-doc swig-examples
* Typically only the -dev or lib packages are required, but why not get the docs and tools as well.
JAVA_HOME
give configure the environment variable JAVA_HOME to find /usr/bin/javac
export JAVA_HOME=/usr
* Even with this environment variable set and javac available, had to ./configure --nojava
laser exitsts
* Now you should be ready to ./configure again
1 carmen/src# ./configure
2 Using $CC as gcc...
3 Found processor unknown.
4 Congratulations. You are running Linux.
5 Found kernel 2.6.20-16-generic.
6 This doesn't look like SuSE!
7 Searching for canlib... Found canlib header at /usr/include/canlib.h
8 Searching for GTK... found, version 2.10.11
9 Searching for joystick... found at /usr/include/linux/joystick.h
10
11 It looks like this is a system include, so I won't add it to the standard
12 include path. Adding partial system include paths is usually a recipe for
13 disaster. If this is the wrong thing to do, you could add the following
14 line to Makefile.vars:
15 JOYSTICK_INCLUDE = -I/usr/include/linux/joystick.h
16
17 Searching for tcpd.h... found
18 Looks like your system supports access control. Very good.
19 Searching for jpeglib.h... found
20 Searching for zlib.h... found
21 Searching for Wand... not found
22 Searching for Java... found
23 Searching for doxygen... found
24 Searching for SWIG... found
25 Searching for Python... found
26 Should Python Bindings be installed: [y/N] N
27 Should the old laser server be used instead of the new one: [y/N] N
28 ERROR: The directory called laser exitsts.
* This is just safeguarding to make sure you don't overwrite work
* If this is your first install, just delete the directory
Successful ./configure
1 carmen/src# ./configure
2 Using $CC as gcc...
3 Found processor unknown.
4 Congratulations. You are running Linux.
5 Found kernel 2.6.20-16-generic.
6 This doesn't look like SuSE!
7 Searching for canlib... Found canlib header at /usr/include/canlib.h
8 Searching for GTK... found, version 2.10.11
9 Searching for joystick... found at /usr/include/linux/joystick.h
10
11 It looks like this is a system include, so I won't add it to the standard
12 include path. Adding partial system include paths is usually a recipe for
13 disaster. If this is the wrong thing to do, you could add the following
14 line to Makefile.vars:
15 JOYSTICK_INCLUDE = -I/usr/include/linux/joystick.h
16
17 Searching for tcpd.h... found
18 Looks like your system supports access control. Very good.
19 Searching for jpeglib.h... found
20 Searching for zlib.h... found
21 Searching for Wand... not found
22 Searching for Java... found
23 Searching for doxygen... found
24 Searching for SWIG... found
25 Searching for Python... found
26 Should Python Bindings be installed: [y/N] N
27 Should the old laser server be used instead of the new one: [y/N] N
28
29 Type the install prefix to use for public installs, or hit enter to keep the
30 default as /usr/local. (This prefix is not currently used by any rules.)
31
32 Install path [/usr/local/]:
33
34 You must have Linux kernel 2.0.20 to compile:
35 Nomadic Technologies XR4000
36
37 These are the robot types CARMEN currently supports:
38 1. ActiveMedia Pioneer I
39 2. ActiveMedia Pioneer II
40 3. iRobot ATRV
41 4. iRobot ATRV-JR
42 5. iRobot B21R
43 6. Scout
44 7. OrcBoard v.4
45 8. OrcBoard v.5 (Experimental)
46 8. Segway RMP
47 9. *
48
49 Please select which robots you wish to compile base modules for.
50 e.g., 1, 2, 6 would compile support for both Pioneer types and a Scout.
51 Hit enter to compile them all, or type "none" to compile no base module
52 support, for example, if you will be working exclusively in simulation.
53
54 Robot numbers [*]:
55 Very well, compiling support for all base types.
make
* Once you get a successful ./configure, you can run make
JAVA LIBRARIRES
I ended up skipping over java because of these errors:
1 ****************************************************************
2 * Module : JAVA LIBRARIES
3 * Comment : Module for interfacing java programs with Carmen!
4 ****************************************************************
5
6 --> Starting make
7 ---- Compiling ipcjava.c to ipcjava.o (C)
8 In file included from /usr/include/_G_config.h:44,
9 from /usr/include/libio.h:32,
10 from /usr/include/stdio.h:72,
11 from ipcjava.c:67:
12 /usr/include/gconv.h:72: error: expected declaration specifiers or ‘...’ before ‘size_t’
13 /usr/include/gconv.h:88: error: expected declaration specifiers or ‘...’ before ‘size_t’
14 /usr/include/gconv.h:97: error: expected declaration specifiers or ‘...’ before ‘size_t’
15 /usr/include/gconv.h:174: error: expected specifier-qualifier-list before ‘size_t’
16 In file included from /usr/include/stdio.h:72,
17
18 make[3]: *** [ipcjava.o] Error 1
19 exit: 7: Illegal number: -1
20 make[2]: *** [libraries] Error 2
21 make[1]: *** [phase1] Error 2
22 exit: 1: Illegal number: -1
23 make: *** [phase1] Error 2
./configure --nojava
So, let's ./configure again and skip java
1 carmen/src# ./configure --nojava
2 Using $CC as gcc...
3 Found processor unknown.
4 Congratulations. You are running Linux.
5 Found kernel 2.6.20-16-generic.
6 This doesn't look like SuSE!
7 Searching for canlib... Found canlib header at /usr/include/canlib.h
8 Searching for GTK... found, version 2.10.11
9 Searching for joystick... found at /usr/include/linux/joystick.h
10
11 It looks like this is a system include, so I won't add it to the standard
12 include path. Adding partial system include paths is usually a recipe for
13 disaster. If this is the wrong thing to do, you could add the following
14 line to Makefile.vars:
15 JOYSTICK_INCLUDE = -I/usr/include/linux/joystick.h
16
17 Searching for tcpd.h... found
18 Looks like your system supports access control. Very good.
19 Searching for jpeglib.h... found
20 Searching for zlib.h... found
21 Searching for Wand... not found
22 Searching for doxygen... found
23 Searching for SWIG... found
24 Searching for Python... found
25 Should Python Bindings be installed: [y/N] N
26 Should the old laser server be used instead of the new one: [y/N] N
27
28 Type the install prefix to use for public installs, or hit enter to keep the
29 default as /usr/local. (This prefix is not currently used by any rules.)
30
31 Install path [/usr/local/]:
32
33 You must have Linux kernel 2.0.20 to compile:
34 Nomadic Technologies XR4000
35
36 These are the robot types CARMEN currently supports:
37 1. ActiveMedia Pioneer I
38 2. ActiveMedia Pioneer II
39 3. iRobot ATRV
40 4. iRobot ATRV-JR
41 5. iRobot B21R
42 6. Scout
43 7. OrcBoard v.4
44 8. OrcBoard v.5 (Experimental)
45 8. Segway RMP
46 9. *
47
48 Please select which robots you wish to compile base modules for.
49 e.g., 1, 2, 6 would compile support for both Pioneer types and a Scout.
50 Hit enter to compile them all, or type "none" to compile no base module
51 support, for example, if you will be working exclusively in simulation.
52
53 Robot numbers [*]:
54 Very well, compiling support for all base types.
./configure --nojava successful
IPC
IPC requires g++ to be installed
1 carmen/src# make
2
3 ****************************************************************
4 * Module : IPC
5 * Comment : Flexible communications package written by Reid Simmons
6 ****************************************************************
7
8 --> Starting make
9 ---- Archiving ipc.o queryResponse.o marshall.o timer.o list.o behaviors.o tcModError.o datamsg.o formatters.o hash.o idtable.o key.o primFmttrs.o reg.o sendMsg.o tcaMem.o tcaRef.o comModule.o com.o globalM.o globalMUtil.o strList.o modLogging.o modVar.o resMod.o parseFmttrs.o lex.o printData.o into libipc.so.1 (C)
10 make[3]: g++: Command not found
11 make[3]: *** [libipc.so.1] Error 127
12 exit: 7: Illegal number: -1
13 make[2]: *** [binaries] Error 2
14 make[1]: *** [phase2] Error 2
15 exit: 1: Illegal number: -1
16 make: *** [phase2] Error 2
* make[3]: g++: Command not found
apt-get install g++
SEGWAY
make again and it will probably error out on the Segway:
1 ****************************************************************
2 * Module : SEGWAY
3 * Comment : Segway RMP Base Module
4 ****************************************************************
5
6 --> Starting make
7 ---- Compiling segwaycore.c to segwaycore.o (C)
8 In file included from segwaycore.c:30:
9 /usr/include/canlib.h:13:21: error: canstat.h: No such file or directory
10 In file included from segwaycore.c:30:
11 /usr/include/canlib.h:130: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canSetDriverMode’
12 /usr/include/canlib.h:135: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canClose’
13 /usr/include/canlib.h:137: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canGetRawHandle’
14 /usr/include/canlib.h:139: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canBusOn’
15 /usr/include/canlib.h:141: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canResetBus’
16 /usr/include/canlib.h:143: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canBusOff’
17 /usr/include/canlib.h:145: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canSetBusParams’
18 /usr/include/canlib.h:153: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canGetBusParams’
19 /usr/include/canlib.h:161: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canSetBusParamsC200’
20 /usr/include/canlib.h:165: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canSetBusOutputControl’
21 /usr/include/canlib.h:168: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canGetBusOutputControl’
22 /usr/include/canlib.h:171: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canAccept’
23 /usr/include/canlib.h:175: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canReadStatus’
24 /usr/include/canlib.h:178: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canReadErrorCounters’
25 /usr/include/canlib.h:183: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canWrite’
26 /usr/include/canlib.h:187: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canWriteWait’
27 /usr/include/canlib.h:191: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canWriteSync’
28 /usr/include/canlib.h:194: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canReadWait’
29 /usr/include/canlib.h:202: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canRead’
30 /usr/include/canlib.h:210: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canTranslateBaud’
31 /usr/include/canlib.h:217: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canGetErrorText’
32 /usr/include/canlib.h:231: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canIoCtl’
33 /usr/include/canlib.h:234: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canReadTimer’
34 /usr/include/canlib.h:236: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canGetNumberOfChannels’
35 /usr/include/canlib.h:238: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canGetChannelData’
36 /usr/include/canlib.h:242: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘canSetNotify’
37 cc1: warnings being treated as errors
38 segwaycore.c: In function ‘segway_update_status’:
39 segwaycore.c:49: warning: implicit declaration of function ‘canReadWait’
40 segwaycore.c:54: warning: implicit declaration of function ‘canBusOn’
41 segwaycore.c: In function ‘segway_initialize’:
42 segwaycore.c:140: warning: implicit declaration of function ‘canSetBusParams’
43 segwaycore.c: In function ‘segway_free’:
44 segwaycore.c:158: warning: implicit declaration of function ‘canClose’
45 segwaycore.c: In function ‘segway_kill’:
46 segwaycore.c:166: warning: implicit declaration of function ‘canWrite’
47 make[6]: *** [segwaycore.o] Error 1
48 exit: 7: Illegal number: -1
49 make[5]: *** [libraries] Error 2
50 make[4]: *** [all] Error 2
51 make[3]: *** [segway] Error 2
52 exit: 7: Illegal number: -1
53 make[2]: *** [binaries] Error 2
54 make[1]: *** [phase2] Error 2
55 exit: 1: Illegal number: -1
56 make: *** [phase2] Error 2
./configure to skip SEGWAY
Robot numbers [*]: 1,2,3,4,5,6,7,8
* If you cannot make the segway, ./configure again and choose the other robots
1 /carmen/src# ./configure --nojava
2 Using $CC as gcc...
3 Found processor unknown.
4 Congratulations. You are running Linux.
5 Found kernel 2.6.20-16-generic.
6 This doesn't look like SuSE!
7 Searching for canlib... Found canlib header at /usr/include/canlib.h
8 Searching for GTK... found, version 2.10.11
9 Searching for joystick... found at /usr/include/linux/joystick.h
10
11 It looks like this is a system include, so I won't add it to the standard
12 include path. Adding partial system include paths is usually a recipe for
13 disaster. If this is the wrong thing to do, you could add the following
14 line to Makefile.vars:
15 JOYSTICK_INCLUDE = -I/usr/include/linux/joystick.h
16
17 Searching for tcpd.h... found
18 Looks like your system supports access control. Very good.
19 Searching for jpeglib.h... found
20 Searching for zlib.h... found
21 Searching for Wand... not found
22 Searching for doxygen... found
23 Searching for SWIG... found
24 Searching for Python... found
25 Should Python Bindings be installed: [y/N] N
26 Should the old laser server be used instead of the new one: [y/N] N
27
28 Type the install prefix to use for public installs, or hit enter to keep the
29 default as /usr/local. (This prefix is not currently used by any rules.)
30
31 Install path [/usr/local/]:
32
33 You must have Linux kernel 2.0.20 to compile:
34 Nomadic Technologies XR4000
35
36 These are the robot types CARMEN currently supports:
37 1. ActiveMedia Pioneer I
38 2. ActiveMedia Pioneer II
39 3. iRobot ATRV
40 4. iRobot ATRV-JR
41 5. iRobot B21R
42 6. Scout
43 7. OrcBoard v.4
44 8. OrcBoard v.5 (Experimental)
45 8. Segway RMP
46 9. *
47
48 Please select which robots you wish to compile base modules for.
49 e.g., 1, 2, 6 would compile support for both Pioneer types and a Scout.
50 Hit enter to compile them all, or type "none" to compile no base module
51 support, for example, if you will be working exclusively in simulation.
52
53 Robot numbers [*]: 1,2,3,4,5,6,7,8
54
55 Compiling base support for: pioneer rflex scout orc4 orc5
./configure --nojava
Should Python Bindings be installed: [y/N] N
Should the old laser server be used instead of the new one: [y/N] N
Robot numbers [*]: 1,2,3,4,5,6,7,8
gtk-config
MAP-EDITOR requires gtk-config
apt-get install libgtk1.2-dev gdk-imlib-dev
1 ****************************************************************
2 * Module : MAP_EDITOR
3 * Comment : Provides photoshop-like map editor.
4 ****************************************************************
5
6 --> Starting make
7 ---- Compiling map_editor.c to map_editor.o (C)
8 /bin/sh: gtk-config: not found
9 map_editor.c:29:21: error: gtk/gtk.h: No such file or directory
10 In file included from map_editor.c:31:
11 map_editor.h:37:23: error: gdk_imlib.h: No such file or directory
12 In file included from map_editor.c:31:
13
14 carmen/src# gtk-config
15 The program 'gtk-config' is currently not installed. You can install it by typing:
16 apt-get install libgtk1.2-dev
17 bash: gtk-config: command not found
apt-get install libgtk1.2-dev
apt-get install gdk-imlib-dev
QUICKCAM
This should get you all the way to the Phillips Camera
1 ****************************************************************
2 * Module : QUICKCAM
3 * Comment : Phillips Camera Module
4 ****************************************************************
5
6 --> Starting make
7 ccvt_mmx.S:31:27: error: linux/linkage.h: No such file or directory
8 make[6]: *** [ccvt_mmx.o] Error 1
9 exit: 7: Illegal number: -1
10 make[5]: *** [libraries] Error 2
11 make[4]: *** [all] Error 2
12 make[3]: *** [quickcam/libquickcam.a] Error 2
13 exit: 7: Illegal number: -1
14 make[2]: *** [binaries] Error 2
15 make[1]: *** [phase2] Error 2
16 exit: 1: Illegal number: -1
17 make: *** [phase2] Error 2
linkage.h
QUICKCAM requires linkage.h
* I don't know how to fix this error, but I have the pwc.ko module compiled on another platform so this is not a show stopper at the moment.
1 carmen/src# locate linkage.h
2 /usr/src/linux-headers-2.6.20-15-generic/include/linux/linkage.h
3 /usr/src/linux-headers-2.6.20-16-generic/include/linux/linkage.h
4 /usr/src/linux-headers-2.6.20-16/include/asm-x86_64/linkage.h
5 /usr/src/linux-headers-2.6.20-16/include/asm-s390/linkage.h
6 /usr/src/linux-headers-2.6.20-16/include/asm-sh64/linkage.h
7 /usr/src/linux-headers-2.6.20-16/include/asm-xtensa/linkage.h
8 /usr/src/linux-headers-2.6.20-16/include/asm-sh/linkage.h
9 /usr/src/linux-headers-2.6.20-16/include/asm-i386/linkage.h
10 /usr/src/linux-headers-2.6.20-16/include/asm-sparc64/linkage.h
11 /usr/src/linux-headers-2.6.20-16/include/asm-mips/linkage.h
12 /usr/src/linux-headers-2.6.20-16/include/asm-m68knommu/linkage.h
13 /usr/src/linux-headers-2.6.20-16/include/asm-m32r/linkage.h
14 /usr/src/linux-headers-2.6.20-16/include/asm-sparc/linkage.h
15 /usr/src/linux-headers-2.6.20-16/include/asm-um/linkage.h
16 /usr/src/linux-headers-2.6.20-16/include/asm-v850/clinkage.h
17 /usr/src/linux-headers-2.6.20-16/include/asm-v850/linkage.h
18 /usr/src/linux-headers-2.6.20-16/include/asm-alpha/linkage.h
19 /usr/src/linux-headers-2.6.20-16/include/asm-avr32/linkage.h
20 /usr/src/linux-headers-2.6.20-16/include/linux/linkage.h
21 /usr/src/linux-headers-2.6.20-16/include/asm-h8300/linkage.h
22 /usr/src/linux-headers-2.6.20-16/include/asm-arm26/linkage.h
23 /usr/src/linux-headers-2.6.20-16/include/asm-parisc/linkage.h
24 /usr/src/linux-headers-2.6.20-16/include/asm-frv/linkage.h
25 /usr/src/linux-headers-2.6.20-16/include/asm-m68k/linkage.h
26 /usr/src/linux-headers-2.6.20-16/include/asm-ia64/linkage.h
27 /usr/src/linux-headers-2.6.20-16/include/asm-cris/linkage.h
28 /usr/src/linux-headers-2.6.20-16/include/asm-powerpc/linkage.h
29 /usr/src/linux-headers-2.6.20-16/include/asm-arm/linkage.h
30 /usr/src/linux-headers-2.6.20-15/include/asm-x86_64/linkage.h
31 /usr/src/linux-headers-2.6.20-15/include/asm-s390/linkage.h
32 /usr/src/linux-headers-2.6.20-15/include/asm-sh64/linkage.h
33 /usr/src/linux-headers-2.6.20-15/include/asm-xtensa/linkage.h
34 /usr/src/linux-headers-2.6.20-15/include/asm-sh/linkage.h
35 /usr/src/linux-headers-2.6.20-15/include/asm-i386/linkage.h
36 /usr/src/linux-headers-2.6.20-15/include/asm-sparc64/linkage.h
37 /usr/src/linux-headers-2.6.20-15/include/asm-mips/linkage.h
38 /usr/src/linux-headers-2.6.20-15/include/asm-m68knommu/linkage.h
39 /usr/src/linux-headers-2.6.20-15/include/asm-m32r/linkage.h
40 /usr/src/linux-headers-2.6.20-15/include/asm-sparc/linkage.h
41 /usr/src/linux-headers-2.6.20-15/include/asm-um/linkage.h
42 /usr/src/linux-headers-2.6.20-15/include/asm-v850/clinkage.h
43 /usr/src/linux-headers-2.6.20-15/include/asm-v850/linkage.h
44 /usr/src/linux-headers-2.6.20-15/include/asm-alpha/linkage.h
45 /usr/src/linux-headers-2.6.20-15/include/asm-avr32/linkage.h
46 /usr/src/linux-headers-2.6.20-15/include/linux/linkage.h
47 /usr/src/linux-headers-2.6.20-15/include/asm-h8300/linkage.h
48 /usr/src/linux-headers-2.6.20-15/include/asm-arm26/linkage.h
49 /usr/src/linux-headers-2.6.20-15/include/asm-parisc/linkage.h
50 /usr/src/linux-headers-2.6.20-15/include/asm-frv/linkage.h
51 /usr/src/linux-headers-2.6.20-15/include/asm-m68k/linkage.h
52 /usr/src/linux-headers-2.6.20-15/include/asm-ia64/linkage.h
53 /usr/src/linux-headers-2.6.20-15/include/asm-cris/linkage.h
54 /usr/src/linux-headers-2.6.20-15/include/asm-powerpc/linkage.h
55 /usr/src/linux-headers-2.6.20-15/include/asm-arm/linkage.h
skip camera
* The quickest way to get around this is to remove the camera package from the Makefile
Makefile with camera package removed:
make
Now you should be able to make
1 carmen/src# make
2
3 ***********
4 E X P O R T
5 ***********
6
7
8 *****************
9 L I B R A R I E S
10 *****************
11
12
13 ****************************************************************
14 * Module : IPC
15 * Comment : Flexible communications package written by Reid Simmons
16 ****************************************************************
17
18 --> Starting make
19 <-- Make done
20
21 ****************************************************************
22 * Module : GLOBAL
23 * Comment : CARMEN global functions
24 ****************************************************************
25
26 --> Starting make
27 <-- Make done
28
29 ****************************************************************
30 * Module : PARAMDAEMON
31 * Comment : Module providing central repository for module parameters
32 ****************************************************************
33
34 --> Starting make
35 <-- Make done
36
37 ****************************************************************
38 * Module : BASE
39 * Comment : Generic interface to all robot bases
40 ****************************************************************
41
42 --> Starting make
43 <-- Make done
44
45 ****************************************************************
46 * Module : LASER
47 * Comment : The new laser module for SICK and Hokuyo lasers
48 ****************************************************************
49
50 --> Starting make
51 <-- Make done
52
53 ****************************************************************
54 * Module : ROBOT_DAEMON
55 * Comment : Module integrating all robot sensors and configuration
56 ****************************************************************
57
58 --> Starting make
59 <-- Make done
60
61 ****************************************************************
62 * Module : SIMULATOR
63 * Comment : simulates the readings of a robot on a map
64 ****************************************************************
65
66 --> Starting make
67 <-- Make done
68
69 ****************************************************************
70 * Module : ROBOTGUI
71 * Comment : Module for displaying output of robot, lasers and sonars and odometry
72 ****************************************************************
73
74 --> Starting make
75 <-- Make done
76
77 ****************************************************************
78 * Module : MAPTOOLS
79 * Comment : Tools for mapping etc.
80 ****************************************************************
81
82 --> Starting make
83 <-- Make done
84
85 ****************************************************************
86 * Module : MAP_EDITOR
87 * Comment : Provides photoshop-like map editor.
88 ****************************************************************
89
90 --> Starting make
91 <-- Make done
92
93 ****************************************************************
94 * Module : LOGGER
95 * Comment : Modules for logging, displaying, and playing back data.
96 ****************************************************************
97
98 --> Starting make
99 <-- Make done
100
101 ****************************************************************
102 * Module : LOGTOOLS
103 * Comment : Log tools, like the famous log2pic
104 ****************************************************************
105
106 --> Starting make
107 <-- Make done
108
109 ****************************************************************
110 * Module : HMAP
111 * Comment : mapserver add-on for heirarchical maps (hmaps).
112 ****************************************************************
113
114 --> Starting make
115 <-- Make done
116
117 ****************************************************************
118 * Module : LOCALIZE
119 * Comment : Markov Localization Module
120 ****************************************************************
121
122 --> Starting make
123 <-- Make done
124
125 ****************************************************************
126 * Module : NAVIGATOR
127 * Comment : The motion planner!
128 ****************************************************************
129
130 --> Starting make
131 <-- Make done
132
133 ****************************************************************
134 * Module : VASCO
135 * Comment : Scan-matching mapper by Dirk Haehnel
136 ****************************************************************
137
138 --> Starting make
139 <-- Make done
140
141 ****************************************************************
142 * Module : PROCCONTROL
143 * Comment : Process controller for CARMEN
144 ****************************************************************
145
146 --> Starting make
147 <-- Make done
148
149 ****************************************************************
150 * Module : JOYSTICK
151 * Comment : Joystick library and control modules
152 ****************************************************************
153
154 --> Starting make
155 <-- Make done
156
157 ****************************************************************
158 * Module : PANTILT
159 * Comment : Module for pantilt interface - direct perception
160 ****************************************************************
161
162 --> Starting make
163 <-- Make done
164
165 ****************************************************************
166 * Module : GPS
167 * Comment : NMEA GPS Module
168 ****************************************************************
169
170 --> Starting make
171 <-- Make done
172
173 ***************
174 B I N A R I E S
175 ***************
176
177
178 ****************************************************************
179 * Module : IPC
180 * Comment : Flexible communications package written by Reid Simmons
181 ****************************************************************
182
183 --> Starting make
184 <-- Make done
185
186 ****************************************************************
187 * Module : GLOBAL
188 * Comment : CARMEN global functions
189 ****************************************************************
190
191 --> Starting make
192 <-- Make done
193
194 ****************************************************************
195 * Module : PARAMDAEMON
196 * Comment : Module providing central repository for module parameters
197 ****************************************************************
198
199 --> Starting make
200 <-- Make done
201
202 ****************************************************************
203 * Module : BASE
204 * Comment : Generic interface to all robot bases
205 ****************************************************************
206
207 --> Starting make
208 <-- Make done
209
210 ****************************************************************
211 * Module : LASER
212 * Comment : The new laser module for SICK and Hokuyo lasers
213 ****************************************************************
214
215 --> Starting make
216 <-- Make done
217
218 ****************************************************************
219 * Module : ROBOT_DAEMON
220 * Comment : Module integrating all robot sensors and configuration
221 ****************************************************************
222
223 --> Starting make
224 <-- Make done
225
226 ****************************************************************
227 * Module : SIMULATOR
228 * Comment : simulates the readings of a robot on a map
229 ****************************************************************
230
231 --> Starting make
232 <-- Make done
233
234 ****************************************************************
235 * Module : ROBOTGUI
236 * Comment : Module for displaying output of robot, lasers and sonars and odometry
237 ****************************************************************
238
239 --> Starting make
240 <-- Make done
241
242 ****************************************************************
243 * Module : MAPTOOLS
244 * Comment : Tools for mapping etc.
245 ****************************************************************
246
247 --> Starting make
248 <-- Make done
249
250 ****************************************************************
251 * Module : MAP_EDITOR
252 * Comment : Provides photoshop-like map editor.
253 ****************************************************************
254
255 --> Starting make
256 <-- Make done
257
258 ****************************************************************
259 * Module : LOGGER
260 * Comment : Modules for logging, displaying, and playing back data.
261 ****************************************************************
262
263 --> Starting make
264 <-- Make done
265
266 ****************************************************************
267 * Module : LOGTOOLS
268 * Comment : Log tools, like the famous log2pic
269 ****************************************************************
270
271 --> Starting make
272 <-- Make done
273
274 ****************************************************************
275 * Module : HMAP
276 * Comment : mapserver add-on for heirarchical maps (hmaps).
277 ****************************************************************
278
279 --> Starting make
280 <-- Make done
281
282 ****************************************************************
283 * Module : LOCALIZE
284 * Comment : Markov Localization Module
285 ****************************************************************
286
287 --> Starting make
288 <-- Make done
289
290 ****************************************************************
291 * Module : NAVIGATOR
292 * Comment : The motion planner!
293 ****************************************************************
294
295 --> Starting make
296 <-- Make done
297
298 ****************************************************************
299 * Module : VASCO
300 * Comment : Scan-matching mapper by Dirk Haehnel
301 ****************************************************************
302
303 --> Starting make
304 <-- Make done
305
306 ****************************************************************
307 * Module : PROCCONTROL
308 * Comment : Process controller for CARMEN
309 ****************************************************************
310
311 --> Starting make
312 <-- Make done
313
314 ****************************************************************
315 * Module : JOYSTICK
316 * Comment : Joystick library and control modules
317 ****************************************************************
318
319 --> Starting make
320 ---- Compiling wingman_control.c to wingman_control.o (C)
321 ---- Linking wingman_control.o joyctrl.o to wingman_control (C)
322 ---- Copying wingman_control to ~/carmen/bin
323 <-- Make done
324
325 ****************************************************************
326 * Module : PANTILT
327 * Comment : Module for pantilt interface - direct perception
328 ****************************************************************
329
330 --> Starting make
331 ---- Compiling io.c to io.o (C)
332 ---- Compiling ipc.c to ipc.o (C)
333 ---- Compiling utils.c to utils.o (C)
334 ---- Compiling main.c to main.o (C)
335 ---- Linking io.o ipc.o utils.o main.o to pantilt (C)
336 ---- Compiling pantilt-test.c to pantilt-test.o (C)
337 ---- Linking pantilt-test.o to pantilt-test (C)
338 ---- Copying pantilt to ~/carmen/bin
339 ---- Copying pantilt-test to ~/carmen/bin
340 <-- Make done
341
342 ****************************************************************
343 * Module : GPS
344 * Comment : NMEA GPS Module
345 ****************************************************************
346
347 --> Starting make
348 ---- Compiling gps-io.c to gps-io.o (C)
349 ---- Compiling gps-ipc.c to gps-ipc.o (C)
350 ---- Compiling gps-nmea.c to gps-nmea.o (C)
351 ---- Compiling gps-main.c to gps-main.o (C)
352 ---- Linking gps-io.o gps-ipc.o gps-nmea.o gps-main.o to gps-nmea (C)
353 ---- Compiling gps-test.c to gps-test.o (C)
354 ---- Linking gps-test.o gps_nmea_interface.o to gps-test (C)
355 ---- Copying gps-nmea to ~/carmen/bin
356 <-- Make done
357 Done making binaries...
make successful
RUN
Congratulations you have now downloaded, configured and made Carmen on Ubuntu!
Running instructions are here:
http://carmen.sourceforge.net/using_carmen.html
SICK S300
Additional issues while Make-ing Carmen on Ubuntu 9.10
Error: warn_unused_result
On Ubuntu 9.10, I got several warn_unused_result errors. The problem is the -Werror flag given to gcc and g++ by Makefile.conf, which asks the compiler to treat warnings as errors. To solve this, remove -Werror from both gcc and gXX command in Makefile.conf, and now the warnings will appear as warnings and not errors.
In file Makefile.conf:
1 pathsearch = $(firstword $(wildcard $(addsuffix /$(1),$(subst :, ,$(PATH)))))
2
3 CFLAGS += -Wall -W -Werror -D_REENTRANT
4 CFLAGS += `getconf LFS_CFLAGS`
5 CFLAGS += -D_LARGEFILE64_SOURCE
6 ifdef NO_STRICT_ALIASING
7 CFLAGS += -Wno-strict-aliasing
8 endif
9
10 ifeq (x86_64,$(PROCESSOR))
11 CFLAGS += -fPIC
12 CXXFLAGS += -fPIC
13 endif
14
15 CXXFLAGS += -Wall -W -Werror -D_REENTRANT
16
17 ifdef CARMEN_DEBUG
18 CFLAGS += -g
19 CXXFLAGS += -g
20 else
21 CFLAGS += -O3
22 CXXFLAGS += -O3
23 endif
Error: asm/linkage.h: No such file or directory
I got the following error:
1 ****************************************************************
2 * Module : QUICKCAM
3 * Comment : Phillips Camera Module
4 ****************************************************************
5
6 --> Starting make
7 In file included from ccvt_mmx.S:31:
8 /usr/src/linux-headers-2.6.31-17-generic-pae/include/linux/linkage.h:5:25: error: asm/linkage.h: No such file or directory
9 make[6]: *** [ccvt_mmx.o] Error 1
10 exit: 7: Illegal number: -1
11 make[5]: *** [libraries] Error 2
12 make[4]: *** [all] Error 2
13 make[3]: *** [quickcam/libquickcam.a] Error 2
14 exit: 7: Illegal number: -1
15 make[2]: *** [binaries] Error 2
16 make[1]: *** [phase2] Error 2
17 exit: 1: Illegal number: -1
18 make: *** [phase2] Error 2
Solution: I created a symbolic link to the asm-generic version of linkage.h in the latest ubuntu kernel. This might be a temporary solution and must be repeated with every kernel update. The command I used was:
1 sudo ln -s /usr/src/linux-headers-2.6.31-17-generic-pae/include/asm-generic/linkage.h /usr/src/linux-headers-2.6.31-17-generic-pae/include/asm/
Notes on installing on Ubuntu 10.04 LTS with Carmen 0.7.4-beta
As of May 2011, the latest version of Carmen is 0.7.4-beta http://sourceforge.net/projects/carmen/files/carmen/carmen-0.7.4-beta/carmen-0.7.4-beta.tgz/download
Download and extract:
wget http://sourceforge.net/projects/carmen/files/carmen/carmen-0.7.4-beta/carmen-0.7.4-beta.tgz/download tar -xzvf carmen-0.7.4-beta.tgz
Additional packages
You will need to install the following packages:
sudo apt-get install libgtk2.0-dev libwrap0-dev libjpeg62-dev zlib1g-dev doxygen doxygen-doc doxygen-gui swig swig-doc swig-examples
Java
To install Sun Java: (This is no longer in the main repository, so we have to add it)
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" sudo apt-get update sudo apt-get install sun-java6-jre sun-java6-jdk
If the JAVA_HOME environment variable is not set properly:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
Kvaser canlib library (If you don't use the Segway platform, you can skip this)
Download the Kvaser Linux Drivers and SDK: http://www.kvaser.com/index.php?option=com_php&Itemid=288&swprod=6481f6f00ad4ef8aa5ce3c8fcee03afe&ean=0000000000000
Extract:
tar -xzvf linuxcan_beta.tar.gz
Build and install: (You may be able to get away with just installing the canlib library, but I have not tried this)
cd linuxcan_v4 make sudo make install
Hack libgdk_imlib dependency
The config script checks for gdk_imlib, but this is part of GTK 1.2 and we have GTK 2.0 and it seems Carmen is OK without it. As suggested by http://ubuntuforums.org/showthread.php?t=1417074 , we just remove the check from the configure file. Everything seems to compile and run OK without it.
In the src folder of the carmen distribution:
gedit configure &
Comment out lines 274 to 286 (the comment symbol is #):
# print "Searching for libgdk_imlib.a..."; # if (-e "/usr/lib/libgdk_imlib.a" or # -e "/usr/local/lib/libgdk_imlib.a" or # -e "/opt/gnome/lib/libgdk_imlib.a") { # print " found\n"; # } else { # # print " ${red}not found ${normal}\n\n"; # print "Could not find libgdk_imlib.a in /usr/lib,\n"; # print "/usr/local/lib, nor in /opt/gnome/lib/\n"; # print "Please install libgdk_imlib.a or\n${red}re-run $PROGRAM_NAME with --nographics${normal}\n"; # die "\n"; # }
Build Carmen
At this point, you should be able to run:
./configure
if that is successful, build with:
make
Assuming all is well, you can optionally install with:
sudo make install
carmen (last edited 2011-05-19 22:33:24 by dhcp-43-43)