Giter Site home page Giter Site logo

geographic_info's People

Contributors

atiderko avatar bmagyar avatar chriswsuarez avatar dieg0- avatar dornhege avatar jack-oquin avatar jcmayoral avatar mikepurvis avatar peterqfr avatar roboterbastler avatar roehling avatar stevemacenski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geographic_info's Issues

UTM and Euclidean geometry

Hey, great package. Just wanted to make a comment about something I read in the ROS package information

"Being a Mercator projection, these coordinates permit local navigation using Euclidean geometry"

Respectfully, I do not believe that this is strictly true, and the approximation to Cartesian diverges as you move away from the UTM zone center.

ROS Hydro header file installation bug

The geodesy headers are installed to /opt/ros/hydro/include/geodesy/include/geodesy/*.h instead of /opt/ros/hydro/include/geodesy/*.h.

Thus the headers are not found if you try to build a dependent package.

[ROS2 Foxy] Cannot use conversion functions from `geodesy`

I am trying to convert some NavSatFix messages to WGS84 and UTM. I know in ROS1 the conversion tools we usable by

#include "geodesy/utm.h"
#include "geodesy/wgs84.h"

but this doesn't seem to work in ROS2 with the package installed by

sudo apt install ros-foxy-geodesy

I can't seem to find any example anywhere online of utilizing this package in ROS2, which would almost lead me to believe it hasn't yet been ported if not for the availability of ros-foxy-geodesy in apt. Any ideas what I'm doing wrong?

Indigo release

I am currently working on migrating our software to ROS Indigo and found these packages missing. Will they be released for Indigo?

undefined reference to `geodesy::toMsg(geodesy::UTMPose const&)'

Reproducible e.g. by adding this unit test to test_utm.cpp:

TEST(UTMPose, toMsg)
{
  double e = 1000.0;
  double n = 2400.0;
  double a = 200.0;
  uint8_t z = 14;
  char b = 'R';
  geodesy::UTMPoint pt(e, n, a, z, b);

  // identity quaternion
  geometry_msgs::Quaternion q;
  q.x = 1.0;
  q.y = 0.0;
  q.z = 0.0;
  q.w = 0.0;
  geodesy::UTMPose pose1(pt, q);
  EXPECT_TRUE(geodesy::isValid(pose1));

  geographic_msgs::GeoPose gp = geodesy::toMsg(pose1);
}

Azimuth message type?

Hi, I was doing research about ways of representing azimuth in ROS, and found out that there is no publicly available suitable message for it! How are people coping with that? I see robot_localization expects azimuth encoded in an IMU message, which is... a workaround? :)

Nevertheless, for our internal purposes, I've put together the following message definition. Would there be interest to send a PR and integrate this message into the more standardized geographic_msgs message library?

Azimuth.msg
Header header

# The represented azimuth angle (angular difference between a given direction and north/east)
float64 azimuth

# Variance of the measurement (i.e. standard deviation squared)
float64 variance

# Unit of measurement:
#  RAD: radians, default
#  DEG: degrees (not suggested by REP-103, but are more human-friendly)
uint8 UNIT_RAD=0
uint8 UNIT_DEG=1
uint8 unit

# Orientation type:
#  ENU: default, 0 degrees on east, increases CCW, follows to REP-103
#  NED: 0 degrees on north, increases CW (consistent with the touristic magnetic compasses)
uint8 ORIENTATION_ENU=0
uint8 ORIENTATION_NED=1
uint8 orientation

# Which north reference is used:
#  MAGNETIC: magnetic north, changes in time
#  GEOGRAPHIC: geographic north, stable in time, also called "true azimuth"
#  UTM: UTM grid azimuth, based on GEOGRAPHIC, but accounts for UTM grid convergence; valid only in specific UTM zone
uint8 REFERENCE_MAGNETIC=0
uint8 REFERENCE_GEOGRAPHIC=1
uint8 REFERENCE_UTM=2
uint8 reference

geographic_info: metapackage deprecation warning is misleading

The metapackage <description> says:

Geographic information metapackage. DEPRECATED for wet packages, use only to resolve dry stack dependencies.

Although intended only to describe the metapackage itself, this appears to deprecate the entire repository, which is confusing.

Fix for UTM Conversion to LatLon in southern hemisphere.

The python Geodey package does not correctly recreate lat lon from a utm in the southern hemisphere. It seems pyProj needs a specific hemisphere tag in the definition.

However another fix is provided in the cpp code for geodesy::UTM that I've replicated in the python code to ensure both are consisted with each other. (and as far as I can tell with google maps)

I've opened a PR #53

Bad UTM Transformation

Comparing the geodesy and pygeodesy modules:

from pygeodesy import utm as pyutm
from geodesy import utm
latlon=(-41.0,147.0)
pyutm.toUtm(latlon[0],latlon[1]) # [Z:55, H:S, E:500000, N:5461243]
utm.fromLatLong(latlon[0],latlon[1]).toPoint() # x: 500000.0 y: -4538757.06191 z: 0.0

Easting seems to be fine, Northing is the problem:

latlon=(-40.0,146.0)
pyutm.toUtm(latlon[0],latlon[1]) # [Z:55, H:S, E:414640, N:5571764]
utm.fromLatLong(latlon[0],latlon[1]).toPoint() # x: 414639.538157 y: -4428236.06463 z: 0.0

Confirmed that the pygeodesy module is giving correct UTMs according to geoplaner. Am I missing an important aspect of the geodesy.py namespace?

Release geographic_info to Noetic?

@SteveMacenski Here's a ticket to release to ROS Noetic. I had a quick look for any Python 3 related stuff that needs to be done; I don't see any Python 3 syntax errors using python3 -m flake8 --select=E999 .. For all stuff these wiki pages should be helpful

(edit: continued from ros/rosdistro#21513 (comment))

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.