ros一键安装推荐wget http://fishros.com/install -O fishros && . fishros
(原本的资料的是melodic的,因为资料里面的镜像是ubuntu18.04的,而我用的是鲁班猫sk3566,ubuntu20.04,镜像来源于野火官网)首先获取新noetic源码2024.5.13从客服那得到的
https://pan.baidu.com/e/1tBnA_U0iR79Eapx2g7jwGA
然后在板子创建工作空间
mkdir catkin_ws
cd catkin_ws
将源码src文件整个复制到catkin_ws中
之后开始编译
首先编译三个文件(最基本的功能包)
先不讲哪三个,一开始我不知道怎么运行小车,只会运行不知道怎么把鲁班猫板子和下位机连接起来。怎么控制小车运行
所以出现了以下错误
可以看到我并没有用usb线将下位机stm32和板子鲁班猫连接,只是连接一个激光雷达和开启了小车的电源
解决方法:
检查一下ros主控是否接到stm32的串口三,没接的话接一下,接了之后还有这个报错的话,创建一下串口别名 执行下面四步 :
1、 ssh登录(如果是在小车上直接执行,可以忽略这一步)
2、 cd wheeltec_robot/src/turn_on_wheeltec_robot(注意 cd 后面有个空格)
3、 sudo ./wheeltec_udev.sh(注意 sudo 后面有个空格)
4、 拔插串口三 如果第三步执行失败,先执行下面这一步再执行第三步 cd scripts/(注意 cd 后面有个空格) 上面四步执行完成后,执行 ll /dev (是两个小写的L,ll 后面有个空格)查看是否有 wheeltec_controller,有的话就是添加串口别名成功了
讲下sudo ./wheeltec_udev.sh这个操作
可能会遇到这个问题
解决方法:
给文件赋权限
sudo chmod -R 777 src/(我直接给src的文件全部赋予了)
然后这个操作是干的呢
答案是执行脚本文件,用来对串口设备进行串口别名的
然后接下来讲回运行小车最基本需要哪三个功能包
讲个我遇到的问题,因为我的鲁班猫板子是2G的内存,所以运行很卡,很容易在编译的时候卡住
解决方法是
编译出现卡死情况,要扩展缓存后编译,主控可以通过扩展缓存以提高编译稳定性 扩展命令:
sudo dd if=/dev/zero of=/swap bs=1M count=4096
sudo mkswap /swap
sudo chmod 600 /swap
sudo swapon -a /swap
这是用来拓展编译内存的,第一句运行会比较久
然后第二个问题,我们编译的是一开始都是catkin_make,但这是把所有功能包都编译的意思
当我们拿到一大堆功能包时,刚开始应该一个包一个包的去编译,这样能找出错误,这个错误属于哪个包的,而且一下子编译所有包,很容易卡住。
解决方法
catkin_make -DCATKIN_WHITELIST_PACKAGES="包名"
eg:
catkin_make -DCATKIN_WHITELIST_PACKAGES="world_canvas_msgs"
然后我功能包编译好了,线也连上了,串口也对了,就开始运行键盘控制小车的launch文件
出现以下错误:
!!!此时我的ros源码的melodic版的代码,但我是ubuntu20.04
所以当时解决的方法是:
2024.3.28获得的Noetic源码(不要用) 链接: 百度网盘https://pan.baidu.com/s/14vGCwHFQrigHz9hhCoIUMg
但有个问题:
代码里没有robot_pose_ekf这个功能包
但这个可以通过apt安装的
也可以通过我这个链接获取
链接:https://pan.baidu.com/s/1bDe3MNFn3SAyIeMuV6AHVw?pwd=7777
提取码:7777
--来自百度网盘超级会员V5的分享之后我又遇到一个问题,系统时间的问题,板子一关机,系统的时间就不会走了
需要修改时间后在进行编译
解决方法:
修改文件编译要求修改时间的注意下面两个步骤
1、修改系统时间: sudo date -s "2022-06-15 09:00:00"
2、递归修改当前(终端)文件夹下文件修改时间: find ./* -exec touch {};
参考:
然后下一个问题:当我下好noetic源码进行编译时还是出现之前的错误(所以怀疑跟源码版本没关系):
然后看py文件
解决方法:在python后面加个3
然后代码可以运行了,但车动不了
查看oled屏
电压不对,大车电压正常是20多v以上的
解决方法:
需要打开打车电源
并重新启动一下ros代码
下一个问题激光雷达
思岚的雷达
wheeltec_lidar.launch的型号不对
wheeltec_lidar.launch的内容
解决方法:
(但这个更改错误,因为我不是这个型号,但出现新的问题)
没有carto算法的建图的,这个源码里面不包括。
这个在noetic安装不了的,因为apt安装会显示找不到这个包,目前之后orin系列的主控镜像才有
解决方法:
建图可以换其他算法,
这个只有carto没有,其他都有的,在mappin.launch里面修改
除carto算法,其他都是apt安装的,算法也是,要装其他依赖,只是编译,估计也是用不了的,这里算法的命令,melodic改为noetic
其他的依赖安装查看资料
然后还是有问题
是因为之前的雷达型号还是没选对
解决方法:
修改wheeltec_lidar.launch
然后出现world_canvas包出错
已经编译过了
输入source ./devel/setup.bash,再运行功能
还是一样
sudo chmod -R 777 src/
还是有这个问题
最后解决方法:
用新的
2024.4.1 Noetic源码 链接: 百度网盘
实现激光雷达建图需要编译哪些包?
用新的源码编译卡住了
解决方法:
等一会
这个警告,应该没有影响的,主要看报错
mapserver保存地图错误
可能整体编译,这个包太深了没有编译通过
解决方法:
指定编译这个包
解决方法:
删除掉编译生成build和deve文件夹里这个包,在指定编译
还是有这个错误
不过保存地图的代码,可以运行
之前报错找不到包,现在是是保存地址错了
默认还是官方镜像的路径,自己搭建环境需要修改
note: 需要删除掉编译生成build和deve文件夹里这个包
删除之前编译生成的,会冲突,就需要重新编译成功生成新的文件
编译move_base出错
解决方法:
缺东西了,可以在网上搜一下
启动自主导航出错
方法:
sudo apt install ros-noetic-map-server
在工作空间里面打开终端,输入sudo chmod -R 777 src/
无用
客服问题是:这个看着是因为系统本身缺少内容导致的,并且从您前面你的图看,缺太多了
启动自主导航后。出现警告
这里说的是地图读取不出来
解决方法:
在navigation.launch里面改的
获得一个新的map_server(但还是一样报错)
链接:https://pan.baidu.com/s/1eatccp5vvhtxETu5nG8xGQ?pwd=7777
提取码:7777
--来自百度网盘超级会员V5的分享error:
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libSDL_image.so: undefined reference to `SDL_ReadLE16'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libSDL_image.so: undefined reference to `SDL_FillRect'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libSDL_image.so: undefined reference to `SDL_ReadBE32'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libSDL_image.so: undefined reference to `SDL_SetColorKey'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libSDL_image.so: undefined reference to `SDL_ClearError'
/usr/bin/ld: /home/cat/hl/wheeltec_robot/devel/lib/libmap_server_image_loader.so: undefined reference to `SDL_FreeSurface'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libSDL_image.so: undefined reference to `SDL_MapRGB'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libSDL_image.so: undefined reference to `SDL_RWFromFile'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libSDL_image.so: undefined reference to `SDL_SetError'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libSDL_image.so: undefined reference to `SDL_UpperBlit'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libSDL_image.so: undefined reference to `SDL_ReadLE32'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libSDL_image.so: undefined reference to `SDL_CreateRGBSurface'
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libSDL_image.so: undefined reference to `SDL_Error'
/usr/bin/ld: /home/cat/hl/wheeltec_robot/devel/lib/libmap_server_image_loader.so: undefined reference to `SDL_GetError'
collect2: error: ld returned 1 exit status
make[2]: *** [navigation-noetic-devel/map_server/CMakeFiles/map_server.dir/build.make:128:/home/cat/hl/wheeltec_robot/devel/lib/map_server/map_server] 错误 1
make[1]: *** [CMakeFiles/Makefile2:922:navigation-noetic-devel/map_server/CMakeFiles/map_server.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2
Invoking "make -j4 -l4" failed我查了网上说这个问题是表示在链接时找不到 SDL_ReadLE16 函数的定义。
这个错误通常表示在链接时找不到
SDL_ReadLE16
函数的定义。这可能是由于以下几种原因之一导致的:
SDL_image 库版本不匹配:你正在使用的 SDL_image 库版本可能不兼容你的 SDL 版本。请确保你的 SDL_image 版本与 SDL 版本匹配,或者尝试更新或降级其中一个库的版本。
编译选项错误:在编译或链接时可能没有正确地包含 SDL_image 库。请确保在编译命令中包含了正确的
-lSDL_image
选项,以便链接 SDL_image 库。依赖关系问题:SDL_image 可能依赖于其他库,而这些库可能没有正确地链接。请检查是否有其他必需的库未链接,然后添加到链接命令中。
SDL 库配置问题:SDL 库可能没有正确地安装或配置。请确保 SDL 库正确安装,并且链接器可以找到它们的位置。
你可以尝试查看编译和链接命令,确保正确地包含了 SDL_image 库,并且所有必需的依赖项都正确链接。
好的,让我们从确认 SDL_image 库版本开始:
确认 SDL_image 库版本:
- 在终端中输入以下命令来查看已安装的 SDL_image 库的版本:
apt-cache policy libsdl-image-dev
- 这个命令会显示 SDL_image 库的版本信息,包括安装的版本号以及可用的版本列表。确保安装的版本与你的 SDL 版本兼容。
检查 SDL 版本:
- 如果你不确定已安装的 SDL 版本,你也可以使用类似的命令来查看 SDL 库的版本信息:
apt-cache policy libsdl2-dev
- 确保安装的 SDL 版本与 SDL_image 版本兼容。
根据版本兼容性调整:
- 如果你发现 SDL_image 和 SDL 版本不兼容,你可以尝试更新或降级其中一个库的版本,以确保它们之间的兼容性。
- 如果版本兼容性没有问题,那么我们将继续检查编译选项和依赖关系。
请尝试执行以上步骤,并在确认 SDL_image 和 SDL 版本兼容后进行下一步操作。如果你遇到任何问题或需要更多帮助,请随时告诉我。
问题:cat@lubancat:~/Desktop$ apt-cache policy libsdl-image-dev N: 无法定位软件包 libsdl-image-dev
看起来
libsdl-image-dev
软件包在你的系统中没有被安装。这可能是因为软件源中没有该软件包,或者你的软件源列表不包含它所在的仓库。你可以尝试更新软件源列表,并尝试安装
libsdl-image-dev
软件包。请在终端中执行以下命令:bash
sudo apt update sudo apt install libsdl-image-dev
这会更新你的软件源列表并安装 SDL_image 开发包。安装完成后,你可以再次运行
apt-cache policy libsdl-image-dev
命令来确认已安装的 SDL_image 版本。如果你遇到任何问题或需要更多帮助,请随时告诉我。
对于 Ubuntu 20.04,你可以安装以下版本的 SDL 和 SDL_image 库:
SDL 库:Ubuntu 20.04 默认提供了 SDL2 库,可以直接通过
libsdl2-dev
包安装。所以你应该安装libsdl2-dev
。SDL_image 库:同样地,Ubuntu 20.04 默认提供了 SDL2_image 库,你可以通过
libsdl2-image-dev
包来安装。所以你可以按照之前提供的命令来安装这两个库:
bash
sudo apt update sudo apt install libsdl2-dev sudo apt install libsdl2-image-dev
这将安装适用于 Ubuntu 20.04 的 SDL 和 SDL_image 库。安装完成后,你可以通过查看其版本信息来确认安装是否成功。
如果你需要进一步的帮助,请随时告诉我。
Ubuntu 20.04确认 SDL_image 库版本
要确认在 Ubuntu 20.04 上安装的 SDL_image 库版本,你可以执行以下命令:
bash
apt-cache policy libsdl2-image-dev
这将显示安装的 SDL_image 库的版本信息,包括安装的版本号以及可用的版本列表。请在终端中执行此命令,并查看输出以确认 SDL_image 库的版本。
重新来
让我们继续在 Ubuntu 20.04 下执行确认 SDL_image 库版本的步骤。请在终端中执行以下命令来查看已安装的 SDL_image 库的版本信息:
bash
apt-cache policy libsdl2-image-dev
这将显示 SDL_image 库的版本信息。请在终端中执行此命令,并查看输出以确认 SDL_image 库的版本。完成后,请告诉我查看到的版本信息。
运行结果我i
libsdl2-dev:
已安装: 2.0.10+dfsg1-3
候选: 2.0.10+dfsg1-3
版本列表:
*** 2.0.10+dfsg1-3 500
500 https://mirrors.ustc.edu.cn/ubuntu-ports focal/universe arm64 Packages
100 /var/lib/dpkg/status
根据你提供的输出,可以看到已安装的 SDL2 版本为 2.0.10+dfsg1-3。然而,这个命令并没有提供关于 SDL_image 库的版本信息。
为了确认 SDL_image 库的版本,请执行以下命令:
bash
apt-cache policy libsdl2-image-dev
这将显示 SDL_image 库的版本信息。请在终端中执行此命令,并告诉我查看到的版本信息。
cat@lubancat:~$ apt-cache policy libsdl2-image-dev
libsdl2-image-dev:
已安装: 2.0.5+dfsg1-2
候选: 2.0.5+dfsg1-2
版本列表:
*** 2.0.5+dfsg1-2 500
500 https://mirrors.ustc.edu.cn/ubuntu-ports focal/universe arm64 Packages
100 /var/lib/dpkg/status
根据输出,你的系统上安装的 SDL_image 库版本是 2.0.5+dfsg1-2。
接下来,让我们继续执行下一步,检查编译选项。请确保在编译程序时包含了正确的
-lSDL2_image
选项。你可以检查你的编译命令,通常在 Makefile 中定义,或者是在终端中手动输入的。确保你的编译命令中包含了-lSDL2_image
选项。
在 Ubuntu 20.04 下,使用 SDL2_image 库时,你应该使用
-lSDL2_image
和-lSDL2
选项来链接相关库。下面是一个示例的编译命令:
bash
gcc your_program.c -o your_program -lSDL2 -lSDL2_image
请将
your_program.c
替换为你的源代码文件名,并使用上述的编译命令进行编译。这将确保你的程序正确链接了 SDL2 和 SDL2_image 库。
ubuntu20.04下的ros编译map_server
在 Ubuntu 20.04 下,ros使用 SDL2 库时,你应该使用 -lSDL2_image 和 -lSDL2 选项来链接相关库
在 Ubuntu 20.04 下,ROS 在使用 SDL2 库时,通常会使用
pkg-config
来管理库的链接。你可以通过pkg-config
获取正确的链接选项,而不需要手动指定-lSDL2_image
和-lSDL2
。下面是一个示例 CMakeLists.txt 文件,假设你的 ROS 软件包名为 my_package,需要链接到 SDL2 和 SDL2_image 库:
cmake
cmake_minimum_required(VERSION 3.0.2) project(my_package) find_package(catkin REQUIRED COMPONENTS roscpp # 其他依赖项 ) find_package(SDL2 REQUIRED) find_package(SDL2_image REQUIRED) catkin_package( # 包信息 ) include_directories( ${catkin_INCLUDE_DIRS} ${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS} ) add_executable(my_node src/my_node.cpp) target_link_libraries(my_node ${catkin_LIBRARIES} ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES} )
在这个示例中,我们使用
find_package(SDL2 REQUIRED)
和find_package(SDL2_image REQUIRED)
来查找 SDL2 和 SDL2_image 库,并在target_link_libraries
中链接到这些库。确保你已经正确安装了 SDL2 和 SDL2_image 库,你可以使用以下命令来安装:
bash
sudo apt-get install libsdl2-dev libsdl2-image-dev
这样就能正确链接 SDL2 和 SDL2_image 库,而不需要手动指定
-lSDL2_image
和-lSDL2
选项。
CMake Error at navigation-noetic-devel/map_server/CMakeLists.txt:13 (find_package):
By not providing "FindSDL2_image.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"SDL2_image", but CMake did not find one.Could not find a package configuration file provided by "SDL2_image" with
any of the following names:SDL2_imageConfig.cmake
sdl2_image-config.cmakeAdd the installation prefix of "SDL2_image" to CMAKE_PREFIX_PATH or set
"SDL2_image_DIR" to a directory containing one of the above files. If
"SDL2_image" provides a separate development package or SDK, be sure it has
been installed.
-- Configuring incomplete, errors occurred!
See also "/home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeOutput.log".
See also "/home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeError.log".
make: *** [Makefile:1034:cmake_check_build_system] 错误 1
Invoking "make cmake_check_build_system" failed
这个错误提示说明 CMake 在
navigation-noetic-devel/map_server/CMakeLists.txt
文件中无法找到 SDL2_image 库的配置文件。这可能是因为你没有正确安装 SDL2_image 或者 CMake 的模块路径没有包含 SDL2_image 的配置文件位置。要解决这个问题,你可以尝试以下几个步骤:
确保你已经正确安装了 SDL2_image 库。可以使用以下命令来安装:
bash
sudo apt-get install libsdl2-image-dev
检查 SDL2_image 库的安装路径。默认情况下,SDL2_image 库的安装路径应该在
/usr/include/SDL2
和/usr/lib/x86_64-linux-gnu
。你可以通过以下命令确认:bash
ls /usr/include/SDL2 ls /usr/lib/x86_64-linux-gnu
在你的
CMakeLists.txt
文件中添加以下行,指定 SDL2_image 的安装路径:cmake
set(SDL2_IMAGE_DIR /usr/include/SDL2)
请确保将路径
/usr/include/SDL2
替换为你实际的安装路径。如果步骤 3 仍然无法解决问题,你可以尝试手动设置
CMAKE_MODULE_PATH
变量,告诉 CMake 去哪里查找 SDL2_image 的配置文件。在你的CMakeLists.txt
文件中添加以下行:cmake
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} /path/to/sdl2_image/cmake/modules)
请将路径
/path/to/sdl2_image/cmake/modules
替换为你实际的路径。重新运行 CMake 构建过程,看看问题是否已经解决。
Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output:
Change Dir: /home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmpRun Build Command(s):/usr/bin/make cmTC_fad99/fast && /usr/bin/make -f CMakeFiles/cmTC_fad99.dir/build.make CMakeFiles/cmTC_fad99.dir/build
make[1]: 进入目录“/home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_fad99.dir/src.c.o
/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -o CMakeFiles/cmTC_fad99.dir/src.c.o -c /home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmp/src.c
Linking C executable cmTC_fad99
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fad99.dir/link.txt --verbose=1
/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -rdynamic CMakeFiles/cmTC_fad99.dir/src.c.o -o cmTC_fad99
/usr/bin/ld: CMakeFiles/cmTC_fad99.dir/src.c.o: in function `main':
src.c:(.text+0x48): undefined reference to `pthread_create'
/usr/bin/ld: src.c:(.text+0x50): undefined reference to `pthread_detach'
/usr/bin/ld: src.c:(.text+0x5c): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_fad99.dir/build.make:87:cmTC_fad99] 错误 1
make[1]: 离开目录“/home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmp”
make: *** [Makefile:121:cmTC_fad99/fast] 错误 2
Source file was:
#include <pthread.h>void* test_func(void* data)
{
return data;
}int main(void)
{
pthread_t thread;
pthread_create(&thread, NULL, test_func, NULL);
pthread_detach(thread);
pthread_join(thread, NULL);
pthread_atfork(NULL, NULL, NULL);
pthread_exit(NULL);return 0;
}Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmpRun Build Command(s):/usr/bin/make cmTC_98d57/fast && /usr/bin/make -f CMakeFiles/cmTC_98d57.dir/build.make CMakeFiles/cmTC_98d57.dir/build
make[1]: 进入目录“/home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_98d57.dir/CheckFunctionExists.c.o
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_98d57.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
Linking C executable cmTC_98d57
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_98d57.dir/link.txt --verbose=1
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_98d57.dir/CheckFunctionExists.c.o -o cmTC_98d57 -lpthreads
/usr/bin/ld: 找不到 -lpthreads
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_98d57.dir/build.make:87:cmTC_98d57] 错误 1
make[1]: 离开目录“/home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmp”
make: *** [Makefile:121:cmTC_98d57/fast] 错误 2
这个错误提示表明在编译时找不到pthread库。在你的CMakeLists.txt文件中,你需要确保正确链接pthread库。你可以尝试在CMakeLists.txt中添加以下内容:
cmake
find_package(Threads REQUIRED) target_link_libraries(your_target_name Threads::Threads)
将"your_target_name"替换为你的目标可执行文件的名称。这将确保在构建时正确链接pthread库。
另外,你的错误信息中提到了"-lpthreads",这可能是一个拼写错误。正确的库应该是"-lpthread"而不是"-lpthreads"。因此,你也可以尝试将CMakeLists.txt中的"-lpthreads"改为"-lpthread"。
这是CMake Error at navigation-noetic-devel/map_server/CMakeLists.txt:13 (find_package):
By not providing "FindSDL2_image.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"SDL2_image", but CMake did not find one.Could not find a package configuration file provided by "SDL2_image" with
any of the following names:SDL2_imageConfig.cmake
sdl2_image-config.cmakeAdd the installation prefix of "SDL2_image" to CMAKE_PREFIX_PATH or set
"SDL2_image_DIR" to a directory containing one of the above files. If
"SDL2_image" provides a separate development package or SDK, be sure it has
been installed.
-- Configuring incomplete, errors occurred!
See also "/home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeOutput.log".
See also "/home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeError.log".
make: *** [Makefile:1034:cmake_check_build_system] 错误 1
Invoking "make cmake_check_build_system" failed的错误日志
这个错误表明CMake在查找SDL2_image时没有找到相应的包配置文件。要解决这个问题,你可以按照以下步骤进行操作:
检查SDL2_image是否已安装:确保你的系统上已经安装了SDL2_image库及其开发文件。你可以使用系统包管理器来安装,或者从SDL2_image的官方网站下载并手动安装。
设置CMAKE_PREFIX_PATH:如果SDL2_image安装在非标准路径下,你可能需要设置CMAKE_PREFIX_PATH环境变量,以便CMake能够找到SDL2_image。你可以在命令行中设置,也可以在CMakeLists.txt文件中设置:
cmake
set(CMAKE_PREFIX_PATH "/path/to/SDL2_image")
将"/path/to/SDL2_image"替换为SDL2_image安装的实际路径。
设置SDL2_image_DIR:如果SDL2_image安装了相应的CMake配置文件,你可以直接设置SDL2_image_DIR变量来告诉CMake它的位置。在命令行中设置,或者在CMakeLists.txt文件中设置:
cmake
set(SDL2_image_DIR "/path/to/SDL2_image")
将"/path/to/SDL2_image"替换为SDL2_image配置文件所在的目录。
通过执行以上步骤,你应该能够让CMake正确找到SDL2_image库,并成功配置你的项目。
Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output:
Change Dir: /home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmpRun Build Command(s):/usr/bin/make cmTC_fad99/fast && /usr/bin/make -f CMakeFiles/cmTC_fad99.dir/build.make CMakeFiles/cmTC_fad99.dir/build
make[1]: 进入目录“/home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_fad99.dir/src.c.o
/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -o CMakeFiles/cmTC_fad99.dir/src.c.o -c /home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmp/src.c
Linking C executable cmTC_fad99
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fad99.dir/link.txt --verbose=1
/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -rdynamic CMakeFiles/cmTC_fad99.dir/src.c.o -o cmTC_fad99
/usr/bin/ld: CMakeFiles/cmTC_fad99.dir/src.c.o: in function `main':
src.c:(.text+0x48): undefined reference to `pthread_create'
/usr/bin/ld: src.c:(.text+0x50): undefined reference to `pthread_detach'
/usr/bin/ld: src.c:(.text+0x5c): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_fad99.dir/build.make:87:cmTC_fad99] 错误 1
make[1]: 离开目录“/home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmp”
make: *** [Makefile:121:cmTC_fad99/fast] 错误 2
Source file was:
#include <pthread.h>void* test_func(void* data)
{
return data;
}int main(void)
{
pthread_t thread;
pthread_create(&thread, NULL, test_func, NULL);
pthread_detach(thread);
pthread_join(thread, NULL);
pthread_atfork(NULL, NULL, NULL);
pthread_exit(NULL);return 0;
}Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmpRun Build Command(s):/usr/bin/make cmTC_98d57/fast && /usr/bin/make -f CMakeFiles/cmTC_98d57.dir/build.make CMakeFiles/cmTC_98d57.dir/build
make[1]: 进入目录“/home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_98d57.dir/CheckFunctionExists.c.o
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_98d57.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
Linking C executable cmTC_98d57
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_98d57.dir/link.txt --verbose=1
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_98d57.dir/CheckFunctionExists.c.o -o cmTC_98d57 -lpthreads
/usr/bin/ld: 找不到 -lpthreads
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_98d57.dir/build.make:87:cmTC_98d57] 错误 1
make[1]: 离开目录“/home/cat/hl/wheeltec_robot/build/CMakeFiles/CMakeTmp”
这个错误表明在CMake测试阶段,编译器无法找到pthread库。要解决这个问题,你可以尝试以下步骤:
查找正确的pthread库:首先确保你的系统中已经安装了pthread库。通常情况下,pthread库是Linux系统的一部分,但在某些情况下可能需要单独安装。你可以通过包管理器来安装,例如对于Debian/Ubuntu系统,你可以运行以下命令:
sudo apt-get install libpthread-stubs0-dev
对于其他Linux发行版,你需要查找相应的包名并使用适当的包管理器进行安装。
设置正确的链接库:错误信息中提到找不到"-lpthreads",这表明CMake正在尝试链接pthread库时使用了错误的名称。pthread库的名称可能因系统而异,通常应该是"-lpthread"而不是"-lpthreads"。你可以在CMakeLists.txt文件中显式指定链接pthread库:
cmake
find_package(Threads REQUIRED) target_link_libraries(your_target_name Threads::Threads)
将"your_target_name"替换为你的目标名称。
重新运行CMake:在进行上述更改后,重新运行CMake来重新生成Makefile,并确保编译器能够找到pthread库。
通过执行以上步骤,你应该能够解决CMake测试阶段中关于pthread的链接错误。
怎么查找SDL2和SDL2_image的安装路径
要查找SDL2和SDL2_image的安装路径,你可以执行以下步骤:
使用pkg-config:SDL2和SDL2_image通常提供了pkg-config文件,可以用来查询它们的安装路径。你可以使用以下命令来查找:
bash
pkg-config --cflags --libs sdl2 sdl2_image
这将输出SDL2和SDL2_image的编译标志和链接标志,其中包含了包含文件的路径和库的路径。
使用locate命令:如果你的系统上安装了SDL2和SDL2_image,并且updatedb数据库已经更新,你可以使用
locate
命令来搜索相关文件的路径。例如:bash
locate SDL2 locate SDL2_image
这将列出与SDL2和SDL2_image相关的文件及其路径,包括头文件、库文件等。
查看默认安装路径:通常情况下,SDL2和SDL2_image会被安装在系统的默认路径下,例如在Linux上可能是
/usr/include
和/usr/lib
。你可以直接查看这些目录来确认是否存在SDL2和SDL2_image的相关文件。通过执行这些步骤,你应该能够找到SDL2和SDL2_image的安装路径。
cat@lubancat:~/hl/wheeltec_robot$ pkg-config --cflags --libs sdl2
-D_REENTRANT -I/usr/local/include -I/usr/local/include/SDL2 -L/usr/local/lib -Wl,-rpath,/usr/local/lib -Wl,--enable-new-dtags -lSDL2
根据你提供的输出,SDL2的安装路径如下:
- 头文件路径:
/usr/local/include/SDL2
- 库文件路径:
/usr/local/lib
- 链接标志:
-lSDL2
你可以使用这些路径来包含SDL2头文件和链接SDL2库文件到你的项目中。如果你的SDL2程序需要链接SDL2_image库,你需要执行类似的步骤来找到SDL2_image的安装路径。
怎么连接到我的ros下的功能包:问sdl2怎么连接到功能包
要将SDL2集成到ROS功能包中,你需要在你的功能包中包含SDL2的头文件和链接SDL2库。以下是一种可能的方法:
- 将SDL2头文件添加到功能包中:在你的功能包目录下创建一个
include
文件夹,并将SDL2的头文件复制到该文件夹中。你可以在SDL2的安装路径中找到这些头文件(例如/usr/local/include/SDL2
)。bash
mkdir -p my_package/include cp -r /usr/local/include/SDL2 my_package/include
- 将SDL2库添加到功能包中:将SDL2的库文件复制到你的功能包中的
lib
文件夹中。你可以在SDL2的安装路径中找到这些库文件(例如/usr/local/lib
)。bash
mkdir -p my_package/lib cp /usr/local/lib/libSDL2.so* my_package/lib
- 修改CMakeLists.txt文件:在你的功能包的
CMakeLists.txt
文件中,添加以下行,以指定SDL2的头文件和库文件路径,并链接SDL2库到你的可执行文件中。cmake
cmake_minimum_required(VERSION 2.8.3) project(my_package) find_package(catkin REQUIRED COMPONENTS roscpp ) include_directories( include ${catkin_INCLUDE_DIRS} ) add_executable(my_node src/my_node.cpp) target_link_libraries(my_node ${catkin_LIBRARIES} SDL2 )
确保在
find_package(catkin...)
之后添加include_directories
指令,将SDL2头文件路径添加到编译器的包含路径中。然后,在target_link_libraries
指令中添加SDL2
,以链接SDL2库到你的可执行文件中。
- 构建功能包:在你的ROS工作空间中构建你的功能包,以便ROS可以找到SDL2的头文件和库文件,并将它们链接到你的可执行文件中。
bash
cd ~/catkin_ws catkin_make
完成这些步骤后,你的ROS功能包应该能够正确连接和使用SDL2库了。
cat@lubancat:~/hl/wheeltec_robot$ pkg-config --cflags --libs sdl2_image Package sdl2_image was not found in the pkg-config search path. Perhaps you should add the directory containing `sdl2_image.pc' to the PKG_CONFIG_PATH environment variable No package 'sdl2_image' found
如果
pkg-config
找不到SDL2_image的信息,这可能意味着SDL2_image的pkg-config文件没有正确安装或配置。请确保你已经按照正确的方式安装了SDL2_image,并且pkg-config能够找到它。在一些系统中,SDL2_image的pkg-config文件可能位于
/usr/lib/pkgconfig
目录下。你可以检查一下这个目录,看看是否有一个名为sdl2_image.pc
的文件。如果没有找到,你可能需要手动安装SDL2_image的开发包。如果SDL2_image的pkg-config文件已经安装但
pkg-config
仍然找不到,你可以尝试将包含该文件的目录添加到PKG_CONFIG_PATH
环境变量中。假设SDL2_image的pkg-config文件位于/usr/local/lib/pkgconfig
目录下,你可以执行以下命令:bash
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
然后再次尝试运行
pkg-config --cflags --libs sdl2_image
命令来检查是否找到了SDL2_image。如果一切顺利,你应该能够看到SDL2_image的编译和链接选项。如果以上步骤都没有解决问题,你可能需要重新安装SDL2_image或者查阅SDL2_image的文档,以确保正确配置了pkg-config。
cat@lubancat:~/hl/wheeltec_robot$ pkg-config --cflags --libs sdl2_image
Package sdl2_image was not found in the pkg-config search path.
Perhaps you should add the directory containing `sdl2_image.pc'
to the PKG_CONFIG_PATH environment variable
No package 'sdl2_image' found
如果pkg-config无法找到SDL2_image,可能是因为SDL2_image的pkg-config文件没有正确安装或配置。请按照以下步骤检查和解决问题:
确认SDL2_image已正确安装:确保已正确安装SDL2_image库。你可以使用包管理器(如apt、yum、brew等)安装SDL2_image,或者从源代码进行手动构建和安装。
查找pkg-config文件位置:在终端中执行以下命令,查找SDL2_image的pkg-config文件位置:
bash
pkg-config --variable pc_path pkg-config
输出应该是一个或多个目录路径,用冒号分隔。检查这些目录中是否存在名为
sdl2_image.pc
的文件。如果找不到,请继续下一步。手动设置PKG_CONFIG_PATH:将包含
sdl2_image.pc
文件的目录添加到PKG_CONFIG_PATH环境变量中。假设SDL2_image的pkg-config文件位于/usr/local/lib/pkgconfig
目录下,你可以执行以下命令:bash
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
注意,这只会在当前终端会话中生效,如果需要持久设置,请将这行命令添加到你的shell配置文件(如
.bashrc
或.zshrc
)中。重新运行pkg-config命令:在终端中再次运行命令
pkg-config --cflags --libs sdl2_image
,检查是否能够找到SDL2_image。如果以上步骤仍然无法解决问题,可能需要重新安装SDL2_image或者查阅SDL2_image的文档以了解更多关于pkg-config的配置信息。
usr/bin/mkdir -p /usr/local/lib/cmake/SDL2_image
/usr/bin/install -c -m 644 sdl2_image-config.cmake /usr/local/lib/cmake/SDL2_image
/usr/bin/install -c -m 644 sdl2_image-config-version.cmake /usr/local/lib/cmake/SDL2_image
/usr/bin/mkdir -p '/usr/local/include/SDL2'
/usr/bin/install -c -m 644 include/SDL_image.h '/usr/local/include/SDL2'
/usr/bin/mkdir -p '/usr/local/lib/pkgconfig'
/usr/bin/install -c -m 644 SDL2_image.pc '/usr/local/lib/pkgconfig'
make[2]: 离开目录“/home/cat/下载/SDL2_image-2.8.2”
make[1]: 离开目录“/home/cat/下载/SDL2_image-2.8.2”
根据你提供的输出,SDL2_image已经成功安装,并且相关的文件已经被复制到了系统目录中。然而,根据你之前的问题描述,pkg-config仍然无法找到SDL2_image。
请尝试执行以下操作:
确保在执行
pkg-config --cflags --libs sdl2_image
命令之前,已经执行了设置PKG_CONFIG_PATH的命令。如果没有,请执行以下命令:bash
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
然后再次运行
pkg-config --cflags --libs sdl2_image
命令,检查是否能够找到SDL2_image。如果还是无法找到SDL2_image,请检查一下PKG_CONFIG_PATH变量是否设置正确,并确保SDL2_image的pkg-config文件位于
/usr/local/lib/pkgconfig
目录下。如果问题仍然存在,可能需要检查一下其他系统设置或者重新安装SDL2_image。
cat@lubancat:~/下载/SDL2_image-2.8.2$ pkg-config --cflags --libsdl2_image Unknown option --libsdl2_image
起来在你运行
pkg-config --cflags --libsdl2_image
时出现了错误,提示Unknown option --libsdl2_image
。这个错误表明pkg-config无法识别
--libsdl2_image
作为选项。这很可能是因为命令中的选项格式不正确。请尝试将命令改为:
bash
pkg-config --cflags --libs SDL2_image
注意命令中
SDL2_image
之前没有--
前缀,因为SDL2_image
是包的名称,而不是选项。执行上述命令后,应该能够正确获取SDL2_image的编译标志和链接标志。
cat@lubancat:~/下载/SDL2_image-2.8.2$ pkg-config --cflags --libs SDL2_image
-D_REENTRANT -I/usr/local/include/SDL2 -I/usr/local/include -I/usr/local/include/SDL2 -L/usr/local/lib -lSDL2_image -Wl,-rpath,/usr/local/lib -Wl,--enable-new-dtags -lSDL2
看起来现在pkg-config成功返回了SDL2_image的编译标志和链接标志。输出中包含了编译标志(
--cflags
)和链接标志(--libs
),它们可以用于编译和链接包含SDL2_image的程序。编译标志包括
-D_REENTRANT
和一些包含SDL2_image头文件的目录路径。链接标志包括了SDL2_image库的路径-L/usr/local/lib
,以及SDL2_image的链接标志-lSDL2_image
和SDL2的链接标志-lSDL2
。现在你可以将这些标志添加到你的编译命令中,以确保正确地编译和链接SDL2_image库。如果你有任何进一步的问题或需要进一步的帮助,请随时告诉我。
我该怎么添加到ros里的cmake文件呢
要将SDL2_image的编译和链接标志添加到ROS项目的CMake文件中,你需要编辑该项目的CMakeLists.txt文件。通常,你需要使用
target_link_libraries()
和target_include_directories()
函数来添加SDL2_image的链接和包含路径。假设你的ROS项目名为
your_ros_project
,以下是一个简单的示例,演示了如何在CMakeLists.txt文件中添加SDL2_image的编译和链接标志:cmake
cmake_minimum_required(VERSION 2.8.3) project(your_ros_project) find_package(catkin REQUIRED COMPONENTS roscpp # 其他你所需的 ROS 包 ) # 查找 SDL2_image find_package(SDL2_image REQUIRED) # 添加包含路径 include_directories( ${catkin_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS} # 这里是 SDL2_image 的包含路径 ) catkin_package( # 包信息 ) # 添加可执行文件 add_executable(your_executable src/your_source_file.cpp) # 链接 ROS 库 target_link_libraries(your_executable ${catkin_LIBRARIES} ${SDL2_IMAGE_LIBRARIES} # 这里是 SDL2_image 的链接标志 )
在这个示例中,
find_package(SDL2_image REQUIRED)
用于查找SDL2_image,include_directories()
用于添加SDL2_image的包含路径,target_link_libraries()
用于将SDL2_image的链接标志添加到你的可执行文件中。确保在编辑你的CMakeLists.txt文件时,将
your_ros_project
和your_executable
替换为你的实际项目名称和可执行文件名称。根据你的项目结构和需要,可能还需要调整路径和其他参数。完成编辑后,保存文件并重新构建你的ROS项目,SDL2_image的功能就应该被正确地集成到你的项目中了。
${SDL2_IMAGE_INCLUDE_DIRS}这个路径是系统自动寻找马
是的,
${SDL2_IMAGE_INCLUDE_DIRS}
和${SDL2_IMAGE_LIBRARIES}
是在使用find_package(SDL2_image REQUIRED)
时自动生成的变量,它们包含了SDL2_image库的包含路径和链接标志。当你调用
find_package(SDL2_image REQUIRED)
时,CMake会自动查找并设置这些变量,以便你可以在你的项目中使用它们,而无需手动指定SDL2_image的路径和链接标志。所以在使用
include_directories()
和target_link_libraries()
时,你可以直接使用${SDL2_IMAGE_INCLUDE_DIRS}
和${SDL2_IMAGE_LIBRARIES}
这些变量,而无需手动指定SDL2_image的路径和链接标志。这样能够使你的CMakeLists.txt文件更加简洁和可移植。
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
这个命令将会向你的
PKG_CONFIG_PATH
环境变量中添加/usr/local/lib/pkgconfig
路径,这样当你使用pkg-config
命令时,它就会在这个路径下查找.pc
文件。通常,当你安装了一些软件包并且它们包含了
.pc
文件时,你需要确保这些文件所在的目录被包含在PKG_CONFIG_PATH
中,这样pkg-config
命令才能正确地找到它们,并返回正确的编译和链接标志。在这种情况下,你已经安装了SDL2_image,并且它的
.pc
文件位于/usr/local/lib/pkgconfig
目录下,因此你需要将这个目录添加到PKG_CONFIG_PATH
中,以便pkg-config
命令能够找到SDL2_image的.pc
文件,从而返回正确的编译和链接标志。执行这个命令后,你就可以使用
pkg-config
命令来获取SDL2_image的编译和链接标志了。
/usr/bin/ld: /home/cat/hl/wheeltec_robot/devel/lib/libmap_server_image_loader.so: undefined reference to `SDL_FreeSurface'
/usr/bin/ld: /home/cat/hl/wheeltec_robot/devel/lib/libmap_server_image_loader.so: undefined reference to `IMG_Load'
/usr/bin/ld: /home/cat/hl/wheeltec_robot/devel/lib/libmap_server_image_loader.so: undefined reference to `SDL_GetError'
collect2: error: ld returned 1 exit status
make[2]: *** [navigation-noetic-devel/map_server/CMakeFiles/map_server.dir/build.make:125:/home/cat/hl/wheeltec_robot/devel/lib/map_server/map_server] 错误 1
make[1]: *** [CMakeFiles/Makefile2:922:navigation-noetic-devel/map_server/CMakeFiles/map_server.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2
Invoking "make -j4 -l4" failed
这个错误表明编译时发生了链接错误,具体是由于在
libmap_server_image_loader.so
库中找不到SDL_FreeSurface
、IMG_Load
和SDL_GetError
函数的定义。这通常是由于未正确链接SDL2_image库导致的。请确保你已经正确地安装了SDL2_image库,并且在CMakeLists.txt文件中添加了正确的链接标志。
请检查以下几点:
确保你已经正确地安装了SDL2_image库。可以尝试使用
pkg-config
命令来确认SDL2_image库的安装路径和版本信息:
pkg-config --modversion SDL2_image
在CMakeLists.txt文件中,确保你使用了正确的链接标志来链接SDL2_image库。你可以在
target_link_libraries()
函数中添加${SDL2_IMAGE_LIBRARIES}
变量,如下所示:cmake
target_link_libraries(your_executable ${catkin_LIBRARIES} ${SDL2_IMAGE_LIBRARIES} )
确保你在CMakeLists.txt文件中正确地设置了SDL2_image的包含路径。你可以在
include_directories()
函数中添加${SDL2_IMAGE_INCLUDE_DIRS}
变量,如下所示:cmake
include_directories( ${catkin_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS} )
完成以上步骤后,重新构建你的项目,看看是否能够解决链接错误。如果问题仍然存在,请确保你的SDL2_image库完整且可用,并检查你的CMakeLists.txt文件中是否有其他可能导致链接错误的配置错误。
怎么查看链接标志
你可以使用
pkg-config
命令来查看SDL2_image库的链接标志。在终端中运行以下命令:
shell
pkg-config --libs SDL2_image
这将返回SDL2_image库的链接标志,例如
-lSDL2_image
和其他可能需要的系统库。另外,你还可以使用
pkg-config
命令来查看SDL2_image库的包含路径,运行以下命令:shell
pkg-config --cflags SDL2_image
这将返回SDL2_image库的包含路径,例如
-I/usr/include/SDL2
。通过查看链接标志和包含路径,你就能够正确地配置你的CMakeLists.txt文件,以确保能够正确链接SDL2_image库。
SDL 1.2和SDL 2 可以在 Ubuntu 上共存。它们是不同的版本,可以同时安装并在同一台机器上使用。
要安装SDL 1.2,请执行以下命令:
sudo apt-get install libsdl1.2-dev
要安装SDL 2,请执行以下命令:
sudo apt-get install libsdl2-dev
这样就可以在同一台机器上同时使用SDL 1.2和SDL 2,并根据需要选择适当的版本进行开发。请注意,在编译时需要使用正确的头文件和库文件路径来链接所需的SDL版本。
以上是问gpt和自己琢磨的,不记得最后怎么处理的了,后面补充
建图的时候出错了
解决方法:
单独运行雷达命令roslaunch turn_on_wheeltec_robot wheeltec_lidar.launch 在运行rostopic echo /scan 查看一下雷达话题有没有数据输出哈
解决方法:
换个连接激光雷达的数据线
问题:rviz打不开
vnc远程吗?vnc的话运行rivz是有这个报错的,这个建议百度一下
这是在自主导航的时候出的错
解决方法:
用ssh连接试试(还没试过)
连接台式可以
问题:车自主导航时,不动
小车是要20v以上才能动
充电器
充满的话,他上面会显示多少v啊
25左右
gazebo仿真的教程视频
链接: 百度网盘 gazebo入门教程 已自带加速,直接点击下载即可
摄像头的问题
运行启动相机是报错
解决方法:
noetic版本报错提示缺少/opt/ros/noetic/share/hector_pose_estimation/hector_pose_estimation_nodelets.xml文件 解决方法参看教程:indigo系统运行出现indigo/share/hector_pose_estimation/hector_pose_estimation_nodelets.xml文件丢失_niode indigo-CSDN博客
然后第一个错误没了,还有第二个
结果是我运行错了节点
应该rgb相机通过usb节点启动
能运行了,但是没有画面
解决方法
这部分取消注释
还是出错
解决方法:
拔插对比看下dev下相机识别出来的具体是video几
拔插下相机,分别运行ll /dev看
最终测试出是video9
但没有弹窗
用linux还是windows都一样
最后解决方法(还在尝试中):看着命名不太对,用这个的看看 Mini ROS小车附送资料 2024.5.13的源码(和开头一样)链接: 百度网盘 【该链接文件可以极速下载,单次可保存5万个文件】
编译出现报错:
这两个只能留一个,因为里面的功能包名称是一样的
解决方法:删除