KumarRobotics / ublox

A driver for ublox gps
BSD 3-Clause "New" or "Revised" License
431 stars 378 forks source link

Failed to poll MonVER & set relevant settings #82

Open kevinliu257 opened 4 years ago

kevinliu257 commented 4 years ago

Hello,

When I running by launch file, but the program hang up, the Error is " Failed to poll MonVER & set relevant settings"

kevin@kevin-virtual-machine:~/catkin_ws/src/ublox-master/ublox_gps/launch$ roslaunch ublox_device.launch ... logging to /home/kevin/.ros/log/ba984710-6f31-11ea-889b-d31927527346/roslaunch-kevin-virtual-machine-87976.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt WARNING: disk usage in log directory [/home/kevin/.ros/log] is over 1GB. It's recommended that you use the 'rosclean' command.

started roslaunch server http://127.0.0.1:44973/

SUMMARY

CLEAR PARAMETERS

PARAMETERS

NODES / ublox_gps (ublox_gps/ublox_gps)

auto-starting new master process[master]: started with pid [87986] ROS_MASTER_URI=http://127.0.0.1:11311

setting /run_id to ba984710-6f31-11ea-889b-d31927527346 process[rosout-1]: started with pid [87999] started core service [/rosout] process[ublox_gps-2]: started with pid [88016] [ INFO] [1585207000.055439752]: U-Blox: Opened serial port /dev/ttyUSB0 [DEBUG] [1585207000.558687442]: U-Blox: Set ASIO baudrate to 9600 [DEBUG] [1585207001.065283482]: U-Blox: Set ASIO baudrate to 19200 [DEBUG] [1585207001.572044700]: U-Blox: Set ASIO baudrate to 38400 [DEBUG] [1585207001.572119662]: Configuring UART1 baud rate: 38400, In/Out Protocol: 32 / 0 terminate called after throwing an instance of 'std::runtime_error' what(): Failed to poll MonVER & set relevant settings

kevinliu257 commented 4 years ago

I find the reason is "callbacks_.read(message, timeout);" always return false. because "handler->wait(timeout)" timeout .

but I don't know how to fix it. my OS is Ubuntu 16.04.

code as below: template bool Gps::read(T& message, const boost::posix_time::timeduration& timeout) { if (!worker) return false; return callbacks_.read(message, timeout); }

template bool read(T& message, const boost::posix_time::time_duration& timeout) { bool result = false; // Create a callback handler for this message callbackmutex.lock(); CallbackHandler* handler = new CallbackHandler(); Callbacks::iterator callback = callbacks_.insert( (std::make_pair(std::make_pair(T::CLASS_ID, T::MESSAGE_ID), boost::shared_ptr(handler)))); callbackmutex.unlock();

// Wait for the message
if (handler->wait(timeout)) {
  message = handler->get();
  result = true;
}

// Remove the callback handler
callback_mutex_.lock();
callbacks_.erase(callback);
callback_mutex_.unlock();
return result;
clint-qurrent commented 3 years ago

I'm having the exact same problem. I do have the ZED-F9P connected to u-center via USB and am attempting to read out the GPS data via UART1.

Any help on this issue would be greatly appreciated.

arpaterson commented 1 year ago

Also experiencing this. In general this node is quite difficult to use with F9P, even with config_on_startup: false and manual configuration in u-center.

Frequent issue on startup:

[ INFO] [1666109469.028044469]: U-Blox: Opened serial port /dev/ttyACM0
terminate called after throwing an instance of 'std::runtime_error'
  what():  Failed to poll MonVER & set relevant settings

Also, after a successful startup and shutdown of the node, it rarely connects successfully a second time.

kosmonauta144 commented 3 months ago

right, but what can be done with this issue? because on ROS2 Humble the problem also occurs, when using u-center configuration saved in non-volatile memory and parameter config_on_startup: false :/