环境:apollo 2.5 + ubuntu16.04 + docker
编译
gnss module 代码所在路径/apollo/modules/drivers/gnss
编译方式:ubuntu@in_dev_docker:/apollo$ ./apollo.sh build_gnss
注意事项:
- 编译脚本
apollo.sh
里面的build选项并不是编译所有的组件,只是用bazel编译所有bazel的targe
编译出的库文件所在目录也不是在/apollo/bazel-out
下面,而是在/home/tmp/ros
里面,即gnss module编译没有使用bazel,还是用catkin_make编译的。 - 修改proto文件下面的文件,给apollo新增一款gps设备(司南),新增了
message ComNavSerial {}
{
optional bytes device = 1; // Something like "/dev/ttyXXX".
optional int32 baud_rate = 2 [default = 9600];
// In general, we assumes no parity, 8 data bits, 1 stop bit, no
// handshaking, break detection enabled. If not, add more fields here.
}
就发现在raw_stream.cpp
中找不到config::Stream::kComNavSerial
经过多方尝试,最后将名字改成Comnav
后就可以了.应该是protoBuf的语法问题.
运行
运行gnss driver可以通过dreamview里面的modules control ->modules ->gps,如下图
运行时遇到的问题
- apollo.drivers.gnss.config.Config: 13:15: Expected integer, got: x 错误
[libprotobuf ERROR google/protobuf/text_format.cc:287] Error parsing text-format apollo.drivers.gnss.config.Config: 13:15: Expected i