ROS交流群
ROS Group
产品服务
Product Service
开源代码库
Github
官网
Official website
技术交流
Technological exchanges
激光雷达
LIDAR
ROS教程
ROS Tourials
深度学习
Deep Learning
机器视觉
Computer Vision

google激光雷达slam算法Cartographer的安装及bag包demo测试



  • @Griffin-MX 错误提示工作空间存在非catkin 包文件夹,找到这个包,然后删除。cartographer和cartographer_ros都需要安装蓝鲸github版本



  • 请问有人使用过cartographer_rosbag_validate这个工具吗?cartographer的环境我是按照这篇文章配的。按理说,应该source 自己的工作空间就可以使用这个工具才,但是,我执行“cartographer_rosbag_validate -bag_filename /home/cubot/ROS/catkin_ws_cartographer/bag/b3-2016-04-05-14-14-00.bag”这个命令的时候报错:“cartographer_rosbag_validate: command not found”。有大佬可以帮忙看一下吗?



  • @zhouyi 用rosrun方式启动

    rosrun cartographer_ros cartographer_rosbag_validate -bag_filename /home/cubot/ROS/catkin_ws_cartographer/bag/b3-2016-04-05-14-14-00.bag
    


  • @xiaoqiang 谢谢您啦😬



  • @xiaoqianggoogle激光雷达slam算法Cartographer的安装及bag包demo测试 中说:

    4.安装cartographer

    这一步的编译总是报虚拟内存不够的错,已经开到20G了,现在编译卡死中。
    有没有别的方法能绕过去?

    如果完全按照官方的方式安装cartographer 能兼容小强的demo 吗?
    谢谢。



  • @山中客 虚拟内存指的是RAM运存,你的20g是硬盘容量,两者不是一个东西。 编译时,在指令后面加 -j 1 参数减小运存的消耗量



  • @frank 确实是并行的job 过多导致编译时内存占用过大。👍 👍 👍

    如果make -j不指定参数,默认是不限制job数,即能并行多少就并行多少。
    -j [jobs], --jobs[=jobs]
    Specifies the number of jobs (commands) to run simultaneously. If there is more than one -j option, the last one is effective. If the -j option is given without an argument, make will not limit the number of jobs that can run simultaneously.



  • 大佬求助,我在执行完第八步以后,出现了如下报错,但是目录下却生成了pgm和yaml文件,不知道有没有问题?

    ================================================================================REQUIRED process [cartographer_assets_writer-1] has died!
    process has finished cleanly
    log file: /home/starskabi/.ros/log/4d9f46d4-bf3d-11ea-8f3f-d8cb8a5b2081/cartographer_assets_writer-1*.log
    Initiating shutdown!



  • 编译cartographer的时候报这个

    MakeFiles/cartographer_compute_relations_metrics.dir/cartographer/ground_truth/compute_relations_metrics_main.cc.o:在函数‘cartographer::ground_truth::(anonymous namespace)::Run(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, bool, bool)’中:
    compute_relations_metrics_main.cc:(.text+0xb76):对‘google::protobuf::Message::ParseFromIstream(std::istream*)’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘cartographer::ground_truth::proto::Relation::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const’中:
    relations.pb.cc:(.text+0xd2):对‘google::protobuf::internal::proto3_preserve_unknown
    ’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘cartographer::ground_truth::proto::GroundTruth::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const’中:
    relations.pb.cc:(.text+0x14b):对‘google::protobuf::internal::proto3_preserve_unknown
    ’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘protobuf_cartographer_2fground_5ftruth_2fproto_2frelations_2eproto::AddDescriptorsImpl()’中:
    relations.pb.cc:(.text+0x1e9):对‘google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void ()(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&))’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘protobuf_cartographer_2fground_5ftruth_2fproto_2frelations_2eproto::protobuf_AssignDescriptors()’中:
    relations.pb.cc:(.text+0x47f):对‘google::protobuf::internal::AssignDescriptors(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, google::protobuf::internal::MigrationSchema const
    , google::protobuf::Message const* const*, unsigned int const*, google::protobuf::Metadata*, google::protobuf::EnumDescriptor const**, google::protobuf::ServiceDescriptor const**)’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘cartographer::ground_truth::proto::Relation::InternalSerializeWithCachedSizesToArray(bool, unsigned char*) const’中:
    relations.pb.cc:(.text+0x19a9):对‘google::protobuf::internal::proto3_preserve_unknown
    ’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘cartographer::ground_truth::proto::GroundTruth::InternalSerializeWithCachedSizesToArray(bool, unsigned char*) const’中:
    relations.pb.cc:(.text+0x1a42):对‘google::protobuf::internal::proto3_preserve_unknown
    ’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘cartographer::ground_truth::proto::Relation::ByteSizeLong() const’中:
    relations.pb.cc:(.text+0x1b23):对‘google::protobuf::internal::proto3_preserve_unknown_’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘cartographer::ground_truth::proto::GroundTruth::ByteSizeLong() const’中:
    relations.pb.cc:(.text+0x1bd3):对‘google::protobuf::internal::proto3_preserve_unknown_’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘cartographer::ground_truth::proto::Relation::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const’中:
    relations.pb.cc:(.text+0xe9):对‘google::protobuf::internal::WireFormat::SerializeUnknownFields(google::protobuf::UnknownFieldSet const&, google::protobuf::io::CodedOutputStream*)’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘cartographer::ground_truth::proto::GroundTruth::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const’中:
    relations.pb.cc:(.text+0x166):对‘google::protobuf::internal::WireFormat::SerializeUnknownFields(google::protobuf::UnknownFieldSet const&, google::protobuf::io::CodedOutputStream*)’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘protobuf_cartographer_2fground_5ftruth_2fproto_2frelations_2eproto::protobuf_RegisterTypes(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)’中:
    relations.pb.cc:(.text+0x2ba):对‘google::protobuf::internal::RegisterAllTypes(google::protobuf::Metadata const*, int)’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘cartographer::ground_truth::proto::Relation::InternalSerializeWithCachedSizesToArray(bool, unsigned char*) const’中:
    relations.pb.cc:(.text+0x19bb):对‘google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*)’未定义的引用
    libcartographer.a(relations.pb.cc.o):在函数‘cartographer::ground_truth::proto::GroundTruth::InternalSerializeWithCachedSizesToArray(bool, unsigned char*) const’中:
    relations.pb.cc:(.text+0x1a5d):对‘google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*)’未定义的引用



  • @kc 依赖的prtobuf 3.0 没有安装好


Log in to reply