Why aren't updates to URDF files being recognized? - ros

I am using cartographer_ros. I have a URDF file in ~/catkin_ws/src/cartographer_ros/cartographer_ros/urdf. I am trying to update this URDF file, but even when I rebuild the workspace by deleting the build_isolated folder and then running catkin_make_isolated --install --use-ninja, RVIZ behaves as if I'm still using the old version of that URDF file when I run roslaunch cartographer_ros jackal_VLP16_kvhIMU_2D.launch. I have to actually create a new URDF file with a different filename and point to that in the launch file for any changes to take effect. This isn't normal, is it?

Related

How to run or launch a ros node without keeping the souce code

What I wanted
I want to reduce my docker image size through removing a cloned source code from my workspace in 'src' directory according to this suggestion. For that matter, I have just deployed my source code using the following commands:
# install package
sudo catkin config --install
catkin_make
catkin_make install
The problem
As a result, install directory generate with many other library folders. I then navigated in to /share/ folder and tried to roslaunch one of my launch file. This is the error that I got:
ERROR: cannot launch node of type [oxford_gps_eth/gps_node]: oxford_gps_eth
ROS path [0]=/opt/ros/melodic/share/ros
ROS path [1]=/home/ubuntu/catkin_ws/src
ROS path [2]=/opt/ros/melodic/share
No processes to monitor
shutting down processing monitor...
Expectation
I was able to launch my node, even being in /install/share/ directory without removing the cloned source code in 'src' directory.
I wanted to launch my nodes after building and remove my source code so that I can utilize my image.
You have to source install/setup.bash. This script will setup your environmental variables such as PYHONPATH and is what roslaunch uses to find packages.

Juno (Jupyter for iOS) specify directory to load dataset

I am trying to load a dataset into a notebook with. The dataset file file is in the same directory as the Juno notebook. The file name is correct.
I have tried removing the trailing ./ but it didn’t help.
df = pd.read_csv('./datatest.csv')
The error is that it can’t find the file. How can I specify the default directory or get the absolute path of a directory on iOS?
The problem was that both the notebook and the dataset was in a Dropbox folder. I'm not sure why it was the problem as all those files were downloaded locally on the phone and the option 'Make available offline' was set.
When I created a notebook in a local folder on the phone and the dataset was there, the error disappeared.

Using Atom with Hydrogen. The working directory for Atom is one folder up from the current file's location. How do i change it to the current folder?

In both Hydrogen and using a plug-in terminal platform, the default directory is one folder up from where my code file resides.
E.g., I’ll be working on a file with path, say, parent/code/file.py. When I run pwd in the plug-in's terminal or the equivalent via Hydrogen in the python script I get parent/, but I need it to be parent/code/ to import files etc.
Perhaps the default directory for Atom is the project that is folder of the project that is open?
Any ideas how to change the default current directory for Atom (or is it package specific) to the file i’m working on/executing in Hydrogen?
In the hydrogen settings you can choose the location where the kernel should be started.
The default is the 'First started project's directory'. You can choose 'Current directory of the file' there, which should give you what you want.

how do i load plugin from sdf model in ros

Similarly like i can put a plugin in urdf file and than when i launch that urdf in gazebo i can control that robot, isn't their any way how i can contol the robot model. I tried to use this line in my launch file but its not working:<param name="robot_description" textfile="$(find <my_robot>)/model.sdf"/>
So is their any way how i can use the plugin from sdf robot to my gazebo ros control package or robot_description src file similarly like i did with urdf file. Like when i launchdd the urdf file with plugins in them, i can communicate with the robot from my plugin file than use ros control. Similarly i loaded the sdf robot in my world file than when i launchd it from my roslaunch file the plugin is not loaded. Why i want to do this was, because so many robot models like r2, kuka and others where present in sdf format so i want to communicate them from my ros package. I am using ros indigo and gazebo 7.4 for robot simulation.
Why is this happening that when i spawn a urdf robot in gazebo i'm able to communicate it through ros but not when i spawn a sdf robot?
Documentation reads:
Under the hood, Gazebo will then convert the URDF to SDF automatically.
Thus, I suggest the problem is in the way you run your sdf, nothing to do with sdf or urdf. Have you tried running the sdf directly (like rosrun gazebo_ros gazebo /path/to/your/sdf)? Not sure about indigo, it helped with kinetic.

Chrome Cordova Translation Issue

Im trying to translate my chrome app to ios. I run the command cca create myapp --copy-from=manifest.json Some errors exist cp: copyFileSync: could not write to dest file (code=ENAMETOOLONG): $PATH_TO_PROJECT/project/platforms/ios/www/platform/..../www/platform/config.xml
where .... is 40 repeated directories of /www/platform
The translation succeeds and im able to run my project with android however, when trying to run in xcode i see an almost identical error saying File name too long.
Anyone have simmilar issues? Anyone able to get ios translations to run?
This is the result of a bug in the way we "import" your project when you specify --copy-from or --link-to arguments to cca create when your import directory is the same as your output directory.
Since the import in your example is a parent folder of the output, it copies itself over and over, recursively until the system kills the process. We have added protection against doing this (by warning during cca create if we detect this case), but that version hasn't released to npm just yet (sorry!).
The fix for the issue is simple: just create your project in another directory that is outside of your packaged app! i.e., either:
# From within packaged app directory
cca create ../myapp --copy-from=./manifest.json
or
# From outside packaged app directory
cca create myapp --copy-from=$APP_DIR/manifest.json

Resources