From 539e23ed4ae7e06d228115b4d67c13cd911d5341 Mon Sep 17 00:00:00 2001 From: Rohan Budhiraja <budhiraja@laas.fr> Date: Fri, 2 Jun 2017 15:59:52 +0200 Subject: [PATCH] [Bug] nbOfJoints_ is not initialized if rosparam(sot/state_vector_map) is undefined. Leads to resize with garbage value TODO: where to set the size of angleEncoder_? --- src/sot_loader.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/sot_loader.cpp b/src/sot_loader.cpp index 60f151c..411ed6c 100644 --- a/src/sot_loader.cpp +++ b/src/sot_loader.cpp @@ -76,15 +76,20 @@ void SotLoader::startControlLoop() void SotLoader::initializeRosNode(int argc, char *argv[]) { SotLoaderBasic::initializeRosNode(argc, argv); - angleEncoder_.resize(nbOfJoints_); + //Temporary fix. TODO: where should nbOfJoints_ be initialized from? + if (ros::param::has("/sot/state_vector_map")) { + angleEncoder_.resize(nbOfJoints_); + } + startControlLoop(); } void SotLoader::fillSensors(map<string,dgs::SensorValues> & sensorsIn) { - // Update joint values.w + assert(angleControl_.size() == angleEncoder_.size()); + sensorsIn["joints"].setName("angle"); for(unsigned int i=0;i<angleControl_.size();i++) angleEncoder_[i] = angleControl_[i]; -- GitLab