Hello everyone, I am having some troubles to use Tensorflow in ROS Kinetic.
The error message is: (no error with catkin_make)
process[Filter-1]: started with pid [21302]
process[CallTensorflow-2]: started with pid [21303]
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/zoe/tensorflow-for-poets-2/scripts/label_image.py", line 25, in
import tensorflow as tf
ImportError: No module named tensorflow
My python node is calling a .sh file which want to use and import tensorflow.
Tensorflow is installed on my computer as we can see:
Name: tensorflow
Version: 1.7.0
Summary: TensorFlow helps the tensors flow
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: opensource@google.com
License: Apache 2.0
Location: /usr/local/lib/python3.5/dist-packages
Requires: wheel, numpy, astor, protobuf, tensorboard, termcolor, gast, absl-py, grpcio, six
As tensorflow is installed in python 3.5 I can only import with python3 in the terminal
zoe@PC-ZOE:~$ python
>>> import tensorflow as tf
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named tensorflow
zoe@PC-ZOE:~$ python3
>>> import tensorflow as tf
What I have already try:
- change the header of the python node to `#!/usr/bin/env python3`
- add `source ~/tensorflow/bin/activate` at the beginning of my .sh file.
- make `source ~/tensorflow/bin/activate` before roslaunch
- add `python-tensorflow-pip `in the package.xml but I can't rosdep python-tensorflow-pip (as I see here https://answers.ros.org/question/228940/integrating-tensorflow-into-ros/)
Can anyone help me, please?
Thank you.
↧
Import tensorflow in ROS kinetic
↧
QR Module of Eigen library is not found, where do I need to alter the Cmake.txt
Hy everybody,
I am currently writing a function for a ros node. During this calculation I am trying to use the pseudo inverse of the QR Module of Eigen. But unfortunately it is not able to find the include and by that not the function. I think I need to alter my Cmake file. I did already use normal functions so this is not the problem.
I found a stack overflow post in which it seems very easy to use the function. Just for clarity I add the link here: [stack overflow post](https://stackoverflow.com/questions/44465197/eigen-library-pseudo-inverse-of-matrix-matlab-pinv)
Thank you very much for your help. Since I am not posting very often just tell me when I need to change anything. I will add all the information as soon as possible.
The code I am trying to make run:
#include
#include "ros/ros.h"
#include
#include
#include
#include
#include //<- can't find this import
void calc_delta_p(Eigen::Matrix &delta_p,Eigen::Matrix &hessian){
hessian.completeOrthogonalDecomposition().pseudoInverse(); //<-cant find this function
delta_p=hessian*delta_p;
}
The compiler throws this error:
/home/catkin_ws/src/image_publisher/src/function_file.cpp:120:13: error: ‘class Eigen::Matrix’ has no member named ‘completeOrthogonalDecomposition’
hessian.completeOrthogonalDecomposition().pseudoInverse();
Here is my cmake file:
cmake_minimum_required(VERSION 2.8.3)
project(image_publisher)
## Compile as C++11, supported in ROS Kinetic and newer
# add_compile_options(-std=c++11)
## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS
cv_bridge
#opencv2
roscpp
sensor_msgs
std_msgs
cmake_modules #eigen
dynamic_reconfigure
message_generation
)
## System dependencies are found with CMake's conventions
# find_package(Boost REQUIRED COMPONENTS system)
## Generate messages in the 'msg' folder
add_message_files(
FILES
sixDOF.msg
)
## Generate added messages and services with any dependencies listed here
generate_messages(
DEPENDENCIES
sensor_msgs
std_msgs
)
## Generate dynamic reconfigure parameters in the 'cfg' folder
generate_dynamic_reconfigure_options(
cfg/dynamic_reconfigure_file.cfg
)
###################################
## catkin specific configuration ##
###################################
## The catkin_package macro generates cmake config files for your package
## Declare things to be passed to dependent projects
## INCLUDE_DIRS: uncomment this if your package contains header files
## LIBRARIES: libraries you create in this project that dependent projects also need
## CATKIN_DEPENDS: catkin_packages dependent projects also need
## DEPENDS: system dependencies of this project that dependent projects also need catkin_package( INCLUDE_DIRS include
# LIBRARIES image_publisher CATKIN_DEPENDS cv_bridge roscpp sensor_msgs std_msgs dynamic_reconfigure message_runtime
#opencv2
# DEPENDS system_lib DEPENDS Eigen #Eigen library )
###########
## Build ##
###########
find_package(OpenCV) find_package(Eigen REQUIRED)
#eigenlibrary
set( PROPRIETARY_FUNCTIONS_H include/image_publisher/function_file.h )
set( PROPRIETARY_FUNCTIONS_CPP src/function_file.cpp )
## Specify additional locations of header files
## Your package locations should be listed before other locations include_directories( include ${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${Eigen_INCLUDE_DIRS}
# ${PROPRIETARY_FUNCTIONS_CPP}
# ${PROPRIETARY_FUNCTIONS_H} )
## Declare a C++ library
# add_library(${PROJECT_NAME}
# src/${PROJECT_NAME}/image_publisher.cpp
# )
#always before add dependencies
## Declare a C++ executable
## With catkin_make all packages are built within a single CMake context
## The recommended prefix ensures that target names across packages don't collide add_executable(image_publisher_node src/image_publisher_node.cpp ${PROPRIETARY_FUNCTIONS_CPP} ${PROPRIETARY_FUNCTIONS_H} ) add_executable(image_subscriber_node src/image_subscriber_node.cpp ${PROPRIETARY_FUNCTIONS_H} ${PROPRIETARY_FUNCTIONS_CPP}) add_executable(test_node src/test_node.cpp ${PROPRIETARY_FUNCTIONS_H} ${PROPRIETARY_FUNCTIONS_CPP})
## Add cmake target dependencies of the library
## as an example, code may need to be generated before libraries
## either from message generation or dynamic reconfigure add_dependencies(image_publisher_node ${catkin_EXPORTED_TARGETS} ${${PROJECT_NAME}_EXPORTED_TARGETS}) add_dependencies(image_subscriber_node ${catkin_EXPORTED_TARGETS} ${${PROJECT_NAME}_EXPORTED_TARGETS}) add_dependencies(test_node ${catkin_EXPORTED_TARGETS} ${${PROJECT_NAME}_EXPORTED_TARGETS}) add_dependencies(image_publisher_node ${PROJECT_NAME}_gencfg)
## Add cmake target dependencies of the executable
## same as for the library above
# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
## Specify libraries to link a library or executable target against target_link_libraries(image_publisher_node ${catkin_LIBRARIES} ${OpenCV_LIBRARIES}) target_link_libraries(image_subscriber_node ${catkin_LIBRARIES} ${OpenCV_LIBRARIES}) target_link_libraries(test_node
${catkin_LIBRARIES} ${OpenCV_LIBRARIES})
↧
↧
ROS kinetic mesh error
Hi
I'm trying to create a hand model in Rviz but when I'm trying to launch my hand model, terminal shows error but my robot model has been launched without mesh
error:
[joint_state_publisher-1] process has died [pid 23769, exit code 1, cmd /opt/ros/kinetic/lib/joint_state_publisher/joint_state_publisher __name:=joint_state_publisher __log:=/home/misiek/.ros/log/f283dd5c-6a41-11e8-bf9c-000c2952c6a7/joint_state_publisher-1.log].
log file: /home/misiek/.ros/log/f283dd5c-6a41-11e8-bf9c-000c2952c6a7/joint_state_publisher-1*.log
my urdf code:
1000.0 10.0 10.0 10.0 Gazebo/Grey 1000.0 10.0 10.0 10.0 Gazebo/Grey 1000.0 10.0 10.0 10.0 Gazebo/Grey 1000.0 10.0 10.0 10.0 Gazebo/Grey 1000.0 10.0 10.0 10.0 Gazebo/Grey 1000.0 10.0 10.0 10.0 Gazebo/Grey 1000.0 10.0 10.0 10.0 Gazebo/Grey 1000.0 10.0 10.0 10.0 Gazebo/Grey
Launch file:
Thank you in advance
↧
import cv2 in ros
Hi,
I have installed opencv 3.4.2 from source with CUDA support in my tX2 and i also i have installed ros which include opencv 3.3.1dev
I have managed to use the correct opencv version when i use ros with cpp using the CMakeLists but when i try to use opencv in python, the opencv used is the one from ros which i dont want
import cv2 as cv
print cv.__version__
3.3.1dev
I would like to be able to use the opencv which is in the repository:
usr/local/lib/python2.7/dist-packages
I guess python will look directly in the folder of ros which contains the lib (opt/ros/kinetic/lib/python/cv2.so) but i would like to avoid this and link directly to the global one
Moreover after symlink the opencv from source to my virtual env, it seems that even the virtual env use the opencv from ros.
Does someone have an idea how to do this?
Thank you
↧
Error on import ros packages
I`m trying to write a ros module in python, but I'm facing this issue below:
import: not authorized `rospy' @ error/constitute.c/WriteImage/1028.
from: can't read /var/mail/sensor_msgs.msg
from: can't read /var/mail/tf2_msgs.msg
from: can't read /var/mail/geometry_msgs.msg
from: can't read /var/mail/cv_bridge
Is there any configuration wrong in CmkaList.txt or package.xml? Am I missing any file for cmake compile correctly python code?
EDIT #1: Added code
#!/usr/bin/env python
import rospy
from sensor_msgs.msg import Image,CameraInfo
from tf2_msgs.msg import TFMessage
from geometry_msgs.msg import TransformStamped
from cv_bridge import CvBridge
import airsim
import cv2
import numpy as np here
↧
↧
use a function imported with a moudle contain multi classes in python
0
The question is all about importing a module called leap_interface.py to send.py and using a of the functions defined in leap_interface. I ask this question, because the leap_interface module is a bit complicated. It contains multi classes.
First, I defined function get_extended_fingers(self) in class LeapInterface in leap_interface module as below:
class LeapInterface(Leap.Listener):
def on_init(self, controller):
...
def on_disconnect(self, controller):
...
def on_exit(self, controller):
print "Exited Leap Motion Controller"
def on_frame(self, controller):
# Get the most recent frame and report some basic information
frame = controller.frame()
# Number of extended fingers Steven
def get_extended_fingers(self):
#print "extendedfingers: %d" % len(extended_finger_list)
return len(extended_finger_list)
Secondly, I want to use this function as an if condition in the file sender.py:
if li.get_extended_fingers < 2:
msg.direction.x = hand_direction_[0]# - initial_pose[0]
msg.direction.y = hand_direction_[1]
msg.direction.z = hand_direction_[2]
print "works1"
if li.get_extended_fingers > 4:
msg.ypr.x = hand_yaw_
msg.ypr.y = hand_pitch_
msg.ypr.z = hand_roll_
print "works2"
However, my solution doesn't work properly. It my terminal, it keeps printing works2, no matter how many extended fingers I show in the field of view of my leap motion sensor. Can you please tell me what I did wrong?
leap_interface.py
import sys
import time
import threading
import Leap
from Leap import CircleGesture, KeyTapGesture, ScreenTapGesture, SwipeGesture
class LeapFinger():
def __init__(self, finger=None):
self.boneNames = ['metacarpal',
'proximal',
'intermediate',
'distal']
for boneName in self.boneNames:
setattr(self, boneName, [0.0, 0.0, 0.0])
self.tip = [0.0, 0.0, 0.0]
self.leapBoneNames = [Leap.Bone.TYPE_METACARPAL,
Leap.Bone.TYPE_PROXIMAL,
Leap.Bone.TYPE_INTERMEDIATE,
Leap.Bone.TYPE_DISTAL]
if finger is not None:
self.importFinger(finger)
def importFinger(self, finger):
for boneName in self.boneNames:
# Get the base of each bone
bone = finger.bone(getattr(Leap.Bone, 'TYPE_%s' % boneName.upper()))
setattr(self, boneName, bone.prev_joint.to_float_array())
# For the tip, get the end of the distal bone
self.tip = finger.bone(Leap.Bone.TYPE_DISTAL).next_joint.to_float_array()
class LeapInterface(Leap.Listener):
def on_init(self, controller):
# These variables as probably not thread safe
# TODO: Make thread safe ;)
self.hand = [0,0,0]
self.right_hand = False
self.left_hand = False
self.hand_direction = [0,0,0]
self.hand_normal = [0,0,0]
self.hand_palm_pos = [0,0,0]
# Velocity Steven
self.hand_palm_vel = [0,0,0]
# Finger tip velocity Steven
self.index_tip_vel = [0,0,0]
self.hand_pitch = 0.0
self.hand_yaw = 0.0
self.hand_roll = 0.0
self.fingerNames = ['thumb', 'index', 'middle', 'ring', 'pinky']
for fingerName in self.fingerNames:
setattr(self, fingerName, LeapFinger())
print "Initialized Leap Motion Device"
def on_connect(self, controller):
print "Connected to Leap Motion Controller"
# Enable gestures
controller.enable_gesture(Leap.Gesture.TYPE_CIRCLE);
controller.enable_gesture(Leap.Gesture.TYPE_KEY_TAP);
controller.enable_gesture(Leap.Gesture.TYPE_SCREEN_TAP);
controller.enable_gesture(Leap.Gesture.TYPE_SWIPE);
def on_disconnect(self, controller):
# Note: not dispatched when running in a debugger.
print "Disconnected Leap Motion"
def on_exit(self, controller):
print "Exited Leap Motion Controller"
def on_frame(self, controller):
# Get the most recent frame and report some basic information
frame = controller.frame()
'''print "Frame id: %d, timestamp: %d, hands: %d, fingers: %d, tools: %d, gestures: %d" % (
frame.id, frame.timestamp, len(frame.hands), len(frame.fingers), len(frame.tools), len(frame.gestures()))'''
if not frame.hands.is_empty: #recently changed in API
# Get the first hand
#we are seeking one left and one right hands
there_is_right_hand=False
there_is_left_hand=False
for hand in frame.hands:
if hand.is_right:
there_is_right_hand=True
self.right_hand=hand
elif hand.is_left:
there_is_left_hand=True
self.left_hand=hand
if not there_is_right_hand:
self.right_hand=False
if not there_is_left_hand:
self.left_hand=False
self.hand = frame.hands[0] #old way
# Check if the hand has any fingers
fingers = self.hand.fingers
extended_finger_list = fingers.extended()
#print type(extended_finger_list)
print "extendedfingers: %d" % len(extended_finger_list)
if not fingers.is_empty:
for fingerName in self.fingerNames:
#finger = fingers.finger_type(Leap.Finger.TYPE_THUMB)[0]
#self.thumb.importFinger(finger)
# finger_type(type)Returns a FingerList object containing only the specified finger types, i.e. only thumbs, or only index fingers, etc. Steven
finger = fingers.finger_type(getattr(Leap.Finger, 'TYPE_%s' % fingerName.upper()))[0]
getattr(self, fingerName).importFinger(finger)
# Get the hand's sphere radius and palm position
# print "Hand sphere radius: %f mm, palm position: %s" % (self.hand.sphere_radius, hand.palm_position)
# Get the hand's normal vector and direction
normal = self.hand.palm_normal
direction = self.hand.direction
pos = self.hand.palm_position
# How about the velocity of hand Steven
vel = self.hand.palm_velocity
#Pointable represents fingers here
pointable = self.hand.pointables[0]
tip_vel = pointable.tip_velocity
self.hand_direction[0] = direction.x
self.hand_direction[1] = direction.y
self.hand_direction[2] = direction.z
self.hand_normal[0] = normal.x
self.hand_normal[1] = normal.y
self.hand_normal[2] = normal.z
self.hand_palm_pos[0] = pos.x
self.hand_palm_pos[1] = pos.y
self.hand_palm_pos[2] = pos.z
self.hand_pitch = direction.pitch * Leap.RAD_TO_DEG
self.hand_yaw = normal.yaw * Leap.RAD_TO_DEG
self.hand_roll = direction.roll * Leap.RAD_TO_DEG
# Velocity Steven
self.hand_palm_vel[0] = vel.x
self.hand_palm_vel[1] = vel.y
self.hand_palm_vel[2] = vel.z
# Pointables Steven
self.index_tip_vel[0] = tip_vel.x
self.index_tip_vel[1] = tip_vel.y
self.index_tip_vel[2] = tip_vel.z
# use the following if condition to clear the data after moveing hand out of the FOV Steven
if frame.hands.is_empty:
self.hand_direction[0] = 0
self.hand_direction[1] = 0
self.hand_direction[2] = 0
self.hand_normal[0] = 0
self.hand_normal[1] = 0
self.hand_normal[2] = 0
self.hand_palm_pos[0] = 0
self.hand_palm_pos[1] = 0
self.hand_palm_pos[2] = 0
self.hand_pitch = 0
self.hand_yaw = 0
self.hand_roll = 0
# Velocity
self.hand_palm_vel[0] = 0
self.hand_palm_vel[1] = 0
self.hand_palm_vel[2] = 0
# Pointables Steven
self.index_tip_vel[0] = 0
self.index_tip_vel[1] = 0
self.index_tip_vel[2] = 0
def get_hand_direction(self):
return self.hand_direction
def get_hand_normal(self):
return self.hand_normal
def get_hand_palmpos(self):
return self.hand_palm_pos
def get_hand_yaw(self):
return self.hand_yaw
def get_hand_pitch(self):
return self.hand_pitch
def get_hand_roll(self):
return self.hand_roll
def get_finger_point(self, fingerName, fingerPointName):
return getattr(getattr(self, fingerName), fingerPointName)
# Velocity Steven
def get_hand_palmvel(self):
return self.hand_palm_vel
# Finger tip velocity Steven
def get_index_tipvel(self):
return self.index_tip_vel
# Number of extended fingers Steven
def get_extended_fingers(self):
#print "extendedfingers: %d" % len(extended_finger_list)
return len(extended_finger_list)
class Runner(threading.Thread):
def __init__(self,arg=None):
threading.Thread.__init__(self)
self.arg=arg
self.listener = LeapInterface()
self.controller = Leap.Controller()
self.controller.add_listener(self.listener)
def __del__(self):
self.controller.remove_listener(self.listener)
def get_hand_direction(self):
return self.listener.get_hand_direction()
def get_hand_normal(self):
return self.listener.get_hand_normal()
def get_hand_palmpos(self):
return self.listener.get_hand_palmpos()
def get_hand_roll(self):
return self.listener.get_hand_roll()
def get_hand_pitch(self):
return self.listener.get_hand_pitch()
def get_hand_yaw(self):
return self.listener.get_hand_yaw()
def get_finger_point(self, fingerName, fingerPointName):
return self.listener.get_finger_point(fingerName, fingerPointName)
# Velocity
def get_hand_palmvel(self):
return self.listener.get_hand_palmvel()
# Finger tip velocity Steven
def get_index_tipvel(self):
return self.listener.get_index_tipvel()
# Number of extended fingers Steven
def get_extended_fingers(self):
return len(extended_finger_list)
#print "extendedfingers: %d" % len(extended_finger_list)
#return self.listener.get_extended_fingers()
def run (self):
while True:
# Save some CPU time
time.sleep(0.001)
sender.py
#!/usr/bin/env python
import argparse
import rospy
import leap_interface
from leap_motion.msg import leap
from leap_motion.msg import leapros
'''FREQUENCY_ROSTOPIC_DEFAULT = 0.01(original rate)'''
FREQUENCY_ROSTOPIC_DEFAULT = 1
NODENAME = 'leap_pub'
PARAMNAME_FREQ = 'freq'
PARAMNAME_FREQ_ENTIRE = '/' + NODENAME + '/' + PARAMNAME_FREQ
def sender():
'''
This method publishes the data defined in leapros.msg to /leapmotion/data
'''
rospy.loginfo("Parameter set on server: PARAMNAME_FREQ=
{}".format(rospy.get_param(PARAMNAME_FREQ_ENTIRE, FREQUENCY_ROSTOPIC_DEFAULT)))
li = leap_interface.Runner()
li.setDaemon(True)
li.start()
# pub = rospy.Publisher('leapmotion/raw',leap)
pub_ros = rospy.Publisher('leapmotion/data',leapros, queue_size=2)
rospy.init_node(NODENAME)
while not rospy.is_shutdown():
hand_direction_ = li.get_hand_direction()
hand_normal_ = li.get_hand_normal()
hand_palm_pos_ = li.get_hand_palmpos()
hand_pitch_ = li.get_hand_pitch()
hand_roll_ = li.get_hand_roll()
hand_yaw_ = li.get_hand_yaw()
# Velocity Steven
hand_palm_vel_ = li.get_hand_palmvel()
index_tip_vel_ = li.get_index_tipvel()
msg = leapros()
#frame.hands[0].fingers.extended()
#print "extendedfingers: %d" % li.get_extended_fingers()
if li.get_extended_fingers < 2:
msg.direction.x = hand_direction_[0]# - initial_pose[0]
msg.direction.y = hand_direction_[1]
msg.direction.z = hand_direction_[2]
msg.normal.x = hand_normal_[0]
msg.normal.y = hand_normal_[1]
msg.normal.z = hand_normal_[2]
msg.palmpos.x = hand_palm_pos_[0]
msg.palmpos.y = hand_palm_pos_[1]
msg.palmpos.z = hand_palm_pos_[2]
# Velocity Steven
msg.palmvel.x = hand_palm_vel_[0]
msg.palmvel.y = hand_palm_vel_[1]
msg.palmvel.z = hand_palm_vel_[2]
# Pointable/Finger tip velocity Steven
msg.tipvel.x = index_tip_vel_[0]
msg.tipvel.y = index_tip_vel_[1]
msg.tipvel.z = index_tip_vel_[2]
print "works1"
#fingerNames = ['thumb', 'index', 'middle', 'ring', 'pinky']
#fingerPointNames = ['metacarpal', 'proximal',
#'intermediate', 'distal', 'tip']
#for fingerName in fingerNames:
#for fingerPointName in fingerPointNames:
#pos = li.get_finger_point(fingerName, fingerPointName)
#for iDim, dimName in enumerate(['x', 'y', 'z']):
#setattr(getattr(msg, '%s_%s' % (fingerName, fingerPointName)),
#dimName, pos[iDim])
'''if frame.hands.is_empty:
msg.index_tip.x = 0
msg.index_tip.y = 0
msg.index_tip.z = 0'''
if li.get_extended_fingers > 4:
msg.ypr.x = hand_yaw_
msg.ypr.y = hand_pitch_
msg.ypr.z = hand_roll_
print "works2"
# We don't publish native data types, see ROS best practices
# pub.publish(hand_direction=hand_direction_,hand_normal = hand_normal_, hand_palm_pos = hand_palm_pos_, hand_pitch = hand_pitch_, hand_roll = hand_roll_, hand_yaw = hand_yaw_)
pub_ros.publish(msg)
rospy.sleep(rospy.get_param(PARAMNAME_FREQ_ENTIRE, FREQUENCY_ROSTOPIC_DEFAULT))
if __name__ == '__main__':
try:
sender()
except rospy.ROSInterruptException:
pass
↧
Ros 2 import tf2 Python
Hello,
I started having a look at Ros 2 (crystal) two weeks ago and really had a hard time creating a package that produces some executables.
As I managed to do that I tried to migrate some old code to Ros 2 code. It was just a tiny project which moved a frame in a circel around the world-frame's center in rviz. To do that I used the TransformBroadcaster imported from tf. I saw that there is now tf2 in my rosdistro/share, so I tried to import that with `import tf2`, but this threw a
ModuleNotFoundError: No module named 'tf2'
The weird thing is, I can import TFMessage from tf2_msgs and publish TFMessages to tf 'by hand'.
This really feels like I overlooked something trivial but as I didn't find anything so far I wanted to ask here.
↧
Error 127 when importing project into Eclipse
Hello,
I'm having trouble importing my package into Eclipse. It worked before, but since a few days it causes trouble. When I open resp. try to import my project the following error message is displayed:
Description Resource Path Location Type
Error 127 occurred while running autoreconf follow_me -1 Configure Problem
I removed my previous version of Eclipse and installed the newest version: Eclipse IDE for C/C++ Version: 2019-03 (4.11.0). Previously I used Eclipse 2018-09 (4.9.0).
According to [this tutorial on the wiki page](http://wiki.ros.org/action/fullsearch/IDEs?action=fullsearch&context=180&value=linkto%3A%22IDEs%22#Creating_the_Eclipse_project_files) I performed the following steps to import the project:
1. In folder catkin_ws: `catkin_make --force-cmake -G"Eclipse CDT4 - Unix Makefiles"`
2. `awk -f $(rospack find mk)/eclipse.awk build/.project > build/.project_with_env && mv build/.project_with_env build/.project`
3. Started Eclipse in a new terminal by: `bash -i -c ~/Software/Eclipse/eclipse/eclipse` (Note: I sourced ~/catkin_ws/devel/setup.bash in ~/.bashrc )
4. In Eclipse: *File > Import... > General > Existing Projects into Workspace > Next > As root directory: /home/username/catkin_ws/src/follow_me > No other option selected > Finish*
The Console output tells:
CDT Build Console [follow_me]
Build stopped
()
And the aforementioned error is shown under the "Problems" tab.
Also the "src" folder is grayed out as well as the containing source files.
I've already tried to reimport my package. Also I can't finish step 4 when I create a new empty package in catkin_ws.
I'm using **ROS Kinetic under Ubuntu 16.04 (64 bit) with kernel version 4.15.0-47-generic**.
What can I do to properly import and use my package in Eclipse?
Thanks in advance for any help!
↧
rosgraph_msgs
Hello,
I'm trying to do a simple suscriber on rosout but I can't get it to work (I'm a begineer).
I'm working on a computer from work.
When I type "rosgraph_msgs.msg import Clock", python says "can't open file 'rosgraph_msgs' : [Errno 2] No such file or directory".
I'm on Ubuntu 14.04.6 Lts. I'm using ROSindigo.
I can't understand why I can't import a basic dependancy when Ros itself is working very fine (I can, for instance, display the data of the topic rosout when it's running).
"from std_msgs.msg import String" works too. Just not "from rosgraph_msgs.msg import Clock". I don't understand why.
If you have any ideas,
Kind Regards,
↧
↧